Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 987f8dfc authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFS: Reduce stack footprint of nfs_setattr()

parent 0ab64e0e
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -393,8 +393,8 @@ int
nfs_setattr(struct dentry *dentry, struct iattr *attr)
{
	struct inode *inode = dentry->d_inode;
	struct nfs_fattr fattr;
	int error;
	struct nfs_fattr *fattr;
	int error = -ENOMEM;

	nfs_inc_stats(inode, NFSIOS_VFSSETATTR);

@@ -417,14 +417,20 @@ nfs_setattr(struct dentry *dentry, struct iattr *attr)
		filemap_write_and_wait(inode->i_mapping);
		nfs_wb_all(inode);
	}

	fattr = nfs_alloc_fattr();
	if (fattr == NULL)
		goto out;
	/*
	 * Return any delegations if we're going to change ACLs
	 */
	if ((attr->ia_valid & (ATTR_MODE|ATTR_UID|ATTR_GID)) != 0)
		nfs_inode_return_delegation(inode);
	error = NFS_PROTO(inode)->setattr(dentry, &fattr, attr);
	error = NFS_PROTO(inode)->setattr(dentry, fattr, attr);
	if (error == 0)
		nfs_refresh_inode(inode, &fattr);
		nfs_refresh_inode(inode, fattr);
	nfs_free_fattr(fattr);
out:
	return error;
}