diff options
Diffstat (limited to 'fs/nfsd/vfs.c')
-rw-r--r-- | fs/nfsd/vfs.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 18a4cc9feeb3..626dfd38528f 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c | |||
@@ -2086,6 +2086,9 @@ nfsd_set_posix_acl(struct svc_fh *fhp, int type, struct posix_acl *acl) | |||
2086 | } else | 2086 | } else |
2087 | size = 0; | 2087 | size = 0; |
2088 | 2088 | ||
2089 | error = mnt_want_write(fhp->fh_export->ex_path.mnt); | ||
2090 | if (error) | ||
2091 | goto getout; | ||
2089 | if (size) | 2092 | if (size) |
2090 | error = vfs_setxattr(fhp->fh_dentry, name, value, size, 0); | 2093 | error = vfs_setxattr(fhp->fh_dentry, name, value, size, 0); |
2091 | else { | 2094 | else { |
@@ -2097,6 +2100,7 @@ nfsd_set_posix_acl(struct svc_fh *fhp, int type, struct posix_acl *acl) | |||
2097 | error = 0; | 2100 | error = 0; |
2098 | } | 2101 | } |
2099 | } | 2102 | } |
2103 | mnt_drop_write(fhp->fh_export->ex_path.mnt); | ||
2100 | 2104 | ||
2101 | getout: | 2105 | getout: |
2102 | kfree(value); | 2106 | kfree(value); |