[PATCH] r/o bind mounts: create helper to drop file write access
If someone decides to demote a file from r/w to just r/o, they can use this same code as __fput(). NFS does just that, and will use this in the next patch. AV: drop write access in __fput() only after we evict from file list. Signed-off-by: Dave Hansen <haveblue@us.ibm.com> Cc: Erez Zadok <ezk@cs.sunysb.edu> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Cc: "J Bruce Fields" <bfields@fieldses.org> Acked-by: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@ -41,6 +41,7 @@
|
||||
#include <linux/sunrpc/svc.h>
|
||||
#include <linux/nfsd/nfsd.h>
|
||||
#include <linux/nfsd/cache.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/mount.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/smp_lock.h>
|
||||
@ -1239,7 +1240,7 @@ static inline void
|
||||
nfs4_file_downgrade(struct file *filp, unsigned int share_access)
|
||||
{
|
||||
if (share_access & NFS4_SHARE_ACCESS_WRITE) {
|
||||
put_write_access(filp->f_path.dentry->d_inode);
|
||||
drop_file_write_access(filp);
|
||||
filp->f_mode = (filp->f_mode | FMODE_READ) & ~FMODE_WRITE;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user