History

NFS: nfs_rename() - revalidate directories on -ERESTARTSYS

An interrupted rename will leave the old dentry behind if the rename succeeds. Fix this by forcing a lookup the next time through ->d_revalidate. A previous attempt at solving this problem took the approach to complete the work of the rename asynchronously, however that approach was wrong since it would allow the d_move() to occur after the directory's i_mutex had been dropped by the original process.

Benjamin Coddington committed 9 years ago

Commit 818a8db1 parent a7a3b1e3 files · +19 −1Browse files

Showing the changes to include/linux (1 of 3 files). Show all

Unified · Split

include/linux/nfs_xdr.h+1−0
@@ -1533,6 +1533,7 @@ struct nfs_renamedata { · 1532 unmodified lines
1533 struct nfs_fattr new_fattr;1533 struct nfs_fattr new_fattr;
1534 void (*complete)(struct rpc_task *, struct nfs_renamedata *);1534 void (*complete)(struct rpc_task *, struct nfs_renamedata *);
1535 long timeout;1535 long timeout;
1536 bool cancelled;
1536};1537};
1537 1538
1538struct nfs_access_entry;1539struct nfs_access_entry;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t