Greg KH wrote:

> 3.3-stable review patch.
[...]
> commit 96f6f98501196d46ce52c2697dd758d9300c63f5 upstream.
>
> ..._want_write() returns -EROFS on failure, _not_ an NFS error value.

Here's the corresponding change for kernels without

        static inline int fh_want_write(struct svc_fh *fh)
        {
                return mnt_want_write(fh->fh_export->ex_path.mnt);
        }

from v3.3-rc1~170^2~81 ("new helpers: fh_{want,drop}_write()"),
such as the 3.0.y kernel.  Thoughts and testing welcome as usual.

-- >8 --
From: Al Viro <[email protected]>
Date: Thu, 12 Apr 2012 23:47:00 -0400

commit 96f6f98501196d46ce52c2697dd758d9300c63f5 upstream.

..._want_write() returns -EROFS on failure, _not_ an NFS error value.

Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Jonathan Nieder <[email protected]>
---
Thanks,
Jonathan

 fs/nfsd/nfs4proc.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 0b8830c9de73..d06a02c1b1a3 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -812,6 +812,7 @@ nfsd4_setattr(struct svc_rqst *rqstp, struct 
nfsd4_compound_state *cstate,
              struct nfsd4_setattr *setattr)
 {
        __be32 status = nfs_ok;
+       int err;
 
        if (setattr->sa_iattr.ia_valid & ATTR_SIZE) {
                nfs4_lock_state();
@@ -823,9 +824,9 @@ nfsd4_setattr(struct svc_rqst *rqstp, struct 
nfsd4_compound_state *cstate,
                        return status;
                }
        }
-       status = mnt_want_write(cstate->current_fh.fh_export->ex_path.mnt);
-       if (status)
-               return status;
+       err = mnt_want_write(cstate->current_fh.fh_export->ex_path.mnt);
+       if (err)
+               return nfserrno(err);
        status = nfs_ok;
 
        status = check_attr_support(rqstp, cstate, setattr->sa_bmval,
-- 
1.7.10

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to