diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-09-28 22:25:29 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-09-28 22:25:29 +0000 |
commit | 0ae8dceaebe3659ee0c3352c08125f403e77ebca (patch) | |
tree | 5085c389f09da78182b899d19fe1068b619a69dd /fs/namei.c | |
parent | 273767781288c35c9d679e908672b9996cda4c34 (diff) |
Merge with 2.3.10.
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/namei.c b/fs/namei.c index 9769ce1bb..e39cd24e1 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -171,18 +171,22 @@ int permission(struct inode * inode,int mask) * 0: no writers, no VM_DENYWRITE mappings * < 0: (-i_writecount) vm_area_structs with VM_DENYWRITE set exist * > 0: (i_writecount) users are writing to the file. + * + * WARNING: as soon as we will move get_write_access(), do_mmap() or + * prepare_binfmt() out of the big lock we will need a spinlock protecting + * the checks in all 3. For the time being it is not needed. */ int get_write_access(struct inode * inode) { - if (inode->i_writecount < 0) + if (atomic_read(&inode->i_writecount) < 0) return -ETXTBSY; - inode->i_writecount++; + atomic_inc(&inode->i_writecount); return 0; } void put_write_access(struct inode * inode) { - inode->i_writecount--; + atomic_dec(&inode->i_writecount); } /* |