From: Derrick Brashear Date: Wed, 2 Jun 2004 08:43:48 +0000 (+0000) Subject: linux-dont-mark-writer-on-mmapped-RO-20040602 X-Git-Tag: openafs-devel-1_3_65~79 X-Git-Url: http://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=fe370813b95b0268ecb134c8c20bfe8d4ba9ee4b linux-dont-mark-writer-on-mmapped-RO-20040602 FIXES 4892 don't mark an mmapped RO as an execOrWriter. --- diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index ebefdc8..d10e3c3 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -464,8 +464,9 @@ afs_linux_vma_close(struct vm_area_struct *vmap) (void)afs_close(vcp, vmap->vm_file->f_flags, credp); /* only decrement the execsOrWriters flag if this is not a * writable file. */ - if (!(vmap->vm_file->f_flags & (FWRITE | FTRUNC))) - vcp->execsOrWriters--; + if (!(vcp->states & CRO) ) + if (! (vmap->vm_file->f_flags & (FWRITE | FTRUNC))) + vcp->execsOrWriters--; vcp->states &= ~CMAPPED; crfree(credp); } else if ((vmap->vm_file->f_flags & (FWRITE | FTRUNC))) @@ -546,7 +547,8 @@ afs_linux_mmap(struct file *fp, struct vm_area_struct *vmap) /* Add an open reference on the first mapping. */ if (vcp->mapcnt == 0) { - vcp->execsOrWriters++; + if (!(vcp->states & CRO)) + vcp->execsOrWriters++; vcp->opens++; vcp->states |= CMAPPED; }