Skip to content

Commit

Permalink
NFS: statfs error-handling fix
Browse files Browse the repository at this point in the history
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())
  • Loading branch information
Amnon Aaronsohn authored and Trond Myklebust committed May 1, 2007
1 parent d585158 commit 1a0ba9a
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions fs/nfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
}

/*
Expand Down

0 comments on commit 1a0ba9a

Please sign in to comment.