mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 06:12:08 +00:00
NFS: Reduce stack footprint of nfs_revalidate_inode()
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
c407d41a16
commit
a3cba2aad9
@ -682,7 +682,7 @@ int
|
||||
__nfs_revalidate_inode(struct nfs_server *server, struct inode *inode)
|
||||
{
|
||||
int status = -ESTALE;
|
||||
struct nfs_fattr fattr;
|
||||
struct nfs_fattr *fattr = NULL;
|
||||
struct nfs_inode *nfsi = NFS_I(inode);
|
||||
|
||||
dfprintk(PAGECACHE, "NFS: revalidating (%s/%Ld)\n",
|
||||
@ -693,8 +693,13 @@ __nfs_revalidate_inode(struct nfs_server *server, struct inode *inode)
|
||||
if (NFS_STALE(inode))
|
||||
goto out;
|
||||
|
||||
status = -ENOMEM;
|
||||
fattr = nfs_alloc_fattr();
|
||||
if (fattr == NULL)
|
||||
goto out;
|
||||
|
||||
nfs_inc_stats(inode, NFSIOS_INODEREVALIDATE);
|
||||
status = NFS_PROTO(inode)->getattr(server, NFS_FH(inode), &fattr);
|
||||
status = NFS_PROTO(inode)->getattr(server, NFS_FH(inode), fattr);
|
||||
if (status != 0) {
|
||||
dfprintk(PAGECACHE, "nfs_revalidate_inode: (%s/%Ld) getattr failed, error=%d\n",
|
||||
inode->i_sb->s_id,
|
||||
@ -707,7 +712,7 @@ __nfs_revalidate_inode(struct nfs_server *server, struct inode *inode)
|
||||
goto out;
|
||||
}
|
||||
|
||||
status = nfs_refresh_inode(inode, &fattr);
|
||||
status = nfs_refresh_inode(inode, fattr);
|
||||
if (status) {
|
||||
dfprintk(PAGECACHE, "nfs_revalidate_inode: (%s/%Ld) refresh failed, error=%d\n",
|
||||
inode->i_sb->s_id,
|
||||
@ -723,6 +728,7 @@ __nfs_revalidate_inode(struct nfs_server *server, struct inode *inode)
|
||||
(long long)NFS_FILEID(inode));
|
||||
|
||||
out:
|
||||
nfs_free_fattr(fattr);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user