diff options
Diffstat (limited to 'fs/utimes.c')
| -rw-r--r-- | fs/utimes.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/utimes.c b/fs/utimes.c index bb0696a4173..f4fb7eca10e 100644 --- a/fs/utimes.c +++ b/fs/utimes.c @@ -158,13 +158,17 @@ long do_utimes(int dfd, const char __user *filename, struct timespec *times,  		if (!(flags & AT_SYMLINK_NOFOLLOW))  			lookup_flags |= LOOKUP_FOLLOW; - +retry:  		error = user_path_at(dfd, filename, lookup_flags, &path);  		if (error)  			goto out;  		error = utimes_common(&path, times);  		path_put(&path); +		if (retry_estale(error, lookup_flags)) { +			lookup_flags |= LOOKUP_REVAL; +			goto retry; +		}  	}  out:  |