Loading fs/xattr.c +7 −2 Original line number Original line Diff line number Diff line Loading @@ -668,8 +668,9 @@ SYSCALL_DEFINE2(lremovexattr, const char __user *, pathname, { { struct path path; struct path path; int error; int error; unsigned int lookup_flags = 0; error = user_lpath(pathname, &path); retry: error = user_path_at(AT_FDCWD, pathname, lookup_flags, &path); if (error) if (error) return error; return error; error = mnt_want_write(path.mnt); error = mnt_want_write(path.mnt); Loading @@ -678,6 +679,10 @@ SYSCALL_DEFINE2(lremovexattr, const char __user *, pathname, mnt_drop_write(path.mnt); mnt_drop_write(path.mnt); } } path_put(&path); path_put(&path); if (retry_estale(error, lookup_flags)) { lookup_flags |= LOOKUP_REVAL; goto retry; } return error; return error; } } Loading Loading
fs/xattr.c +7 −2 Original line number Original line Diff line number Diff line Loading @@ -668,8 +668,9 @@ SYSCALL_DEFINE2(lremovexattr, const char __user *, pathname, { { struct path path; struct path path; int error; int error; unsigned int lookup_flags = 0; error = user_lpath(pathname, &path); retry: error = user_path_at(AT_FDCWD, pathname, lookup_flags, &path); if (error) if (error) return error; return error; error = mnt_want_write(path.mnt); error = mnt_want_write(path.mnt); Loading @@ -678,6 +679,10 @@ SYSCALL_DEFINE2(lremovexattr, const char __user *, pathname, mnt_drop_write(path.mnt); mnt_drop_write(path.mnt); } } path_put(&path); path_put(&path); if (retry_estale(error, lookup_flags)) { lookup_flags |= LOOKUP_REVAL; goto retry; } return error; return error; } } Loading