From e1a1c39a8521cf2d5452baee3d51402d5fede8a7 Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Tue, 18 Oct 2005 14:20:19 -0700 Subject: [PATCH] --- yaml --- r: 9983 b: refs/heads/master c: 642ac54923e0291ae2c8e42edde18d8c9c0a3c84 h: refs/heads/master i: 9981: 0f0d78f58d0f6cfa1372d00a9d8c37710d3d0232 9979: e2c10d0e7ac32c6f98dd4dbcb6edabf8d0227a76 9975: 4f7179dbc7de31cb0571c9858b98900b9a22fdf9 9967: f4a003c3ba56c590e13663f28992b632d03fbb11 9951: e289e7d7bbc0af45d5cd5c05f89d3cf2db6dd0fe 9919: f02f2377ebbbcb2cb14f0784ffe670682ccfb928 9855: 14e2bbfa83011681bdfeab826a315fbca2138309 9727: 9fd69630b0ff3461dda280121975f8b75c734709 v: v3 --- [refs] | 2 +- trunk/fs/nfs/inode.c | 5 +++++ trunk/fs/nfs/nfs4proc.c | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 5b3cda92e08e..8216a15942e6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cae7a073a4c5484cc5713eab606bf54b46724ab3 +refs/heads/master: 642ac54923e0291ae2c8e42edde18d8c9c0a3c84 diff --git a/trunk/fs/nfs/inode.c b/trunk/fs/nfs/inode.c index 6b0f7fe6bd1d..65d5ab45ddc5 100644 --- a/trunk/fs/nfs/inode.c +++ b/trunk/fs/nfs/inode.c @@ -853,6 +853,11 @@ nfs_setattr(struct dentry *dentry, struct iattr *attr) filemap_fdatawait(inode->i_mapping); nfs_wb_all(inode); } + /* + * 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); if (error == 0) nfs_refresh_inode(inode, &fattr); diff --git a/trunk/fs/nfs/nfs4proc.c b/trunk/fs/nfs/nfs4proc.c index 3db1c9f0b09c..c10dcd12af51 100644 --- a/trunk/fs/nfs/nfs4proc.c +++ b/trunk/fs/nfs/nfs4proc.c @@ -2405,6 +2405,7 @@ static int nfs4_proc_set_acl(struct inode *inode, const void *buf, size_t buflen if (!nfs4_server_supports_acls(server)) return -EOPNOTSUPP; + nfs_inode_return_delegation(inode); buf_to_pages(buf, buflen, arg.acl_pages, &arg.acl_pgbase); ret = rpc_call_sync(NFS_SERVER(inode)->client, &msg, 0); if (ret == 0)