|
|
|
[PATCH v1 10/12] vfs: fix symlinkat to retry on ESTALE errors | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> --- fs/namei.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index 3a8e5e4..b189dc5 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -2957,12 +2957,14 @@ SYSCALL_DEFINE3(symlinkat, const char __user *, oldname, char *from; struct dentry *dentry; struct path path; + unsigned int try = 0; from = getname(oldname); if (IS_ERR(from)) return PTR_ERR(from); - dentry = user_path_create(newdfd, newname, &path, false, false); +retry: + dentry = user_path_create(newdfd, newname, &path, false, try); error = PTR_ERR(dentry); if (IS_ERR(dentry)) goto out_putname; @@ -2980,6 +2982,8 @@ out_dput: dput(dentry); mutex_unlock(&path.dentry->d_inode->i_mutex); path_put(&path); + if (retry_estale(error, try++)) + goto retry; out_putname: putname(from); return error; -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux Ext4 Filesystem] [Ecryptfs] [AutoFS] [Kernel Newbies] [Share Photos] [Security] [Netfilter] [Bugtraq] [Photo] [Yosemite] [Yosemite News] [MIPS Linux] [ARM Linux] [Linux Security] [Linux Cachefs] [Reiser Filesystem] [Linux RAID] [Samba] [Video 4 Linux] [Device Mapper] [CEPH Filesystem]
![]() |