forked from Minki/linux
NFS: statfs error-handling fix
The nfs statfs function returns a success code on error, and fills the output buffer with invalid values. The attached patch makes it return a correct error code instead. Signed-off-by: Amnon Aaronsohn <amnonaar@gmail.com> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> (Modified patch to reinstate the dprintk())
This commit is contained in:
parent
d585158b60
commit
1a0ba9ae48
@ -204,9 +204,9 @@ static int nfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
lock_kernel();
|
||||
|
||||
error = server->nfs_client->rpc_ops->statfs(server, fh, &res);
|
||||
buf->f_type = NFS_SUPER_MAGIC;
|
||||
if (error < 0)
|
||||
goto out_err;
|
||||
buf->f_type = NFS_SUPER_MAGIC;
|
||||
|
||||
/*
|
||||
* Current versions of glibc do not correctly handle the
|
||||
@ -233,15 +233,14 @@ static int nfs_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_ffree = res.afiles;
|
||||
|
||||
buf->f_namelen = server->namelen;
|
||||
out:
|
||||
|
||||
unlock_kernel();
|
||||
return 0;
|
||||
|
||||
out_err:
|
||||
dprintk("%s: statfs error = %d\n", __FUNCTION__, -error);
|
||||
buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1;
|
||||
goto out;
|
||||
|
||||
unlock_kernel();
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user