NFSv4: Don't apply change_info4 twice on rename within a directory

If a file is renamed, but stays in the same directory, we will still receive
2 change_info4 structures describing the change to that directory, but we
only want to apply it once.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
Trond Myklebust 2017-01-11 12:32:26 -05:00
parent 2dfc617364
commit c733c49c32

View File

@ -4159,8 +4159,11 @@ static int nfs4_proc_rename_done(struct rpc_task *task, struct inode *old_dir,
if (nfs4_async_handle_error(task, res->server, NULL, &data->timeout) == -EAGAIN) if (nfs4_async_handle_error(task, res->server, NULL, &data->timeout) == -EAGAIN)
return 0; return 0;
update_changeattr(old_dir, &res->old_cinfo); if (task->tk_status == 0) {
update_changeattr(new_dir, &res->new_cinfo); update_changeattr(old_dir, &res->old_cinfo);
if (new_dir != old_dir)
update_changeattr(new_dir, &res->new_cinfo);
}
return 1; return 1;
} }