Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

do_fchownat(): unspaghettify a bit...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro f770e4c1 7f583ad9

+12 -16
+12 -16
fs/open.c
··· 810 810 struct path path; 811 811 int error; 812 812 int lookup_flags; 813 - struct filename *name; 814 813 815 814 if ((flag & ~(AT_SYMLINK_NOFOLLOW | AT_EMPTY_PATH)) != 0) 816 815 return -EINVAL; 817 816 818 817 lookup_flags = (flag & AT_SYMLINK_NOFOLLOW) ? 0 : LOOKUP_FOLLOW; 819 - name = getname_uflags(filename, flag); 818 + CLASS(filename_uflags, name)(filename, flag); 820 819 retry: 821 820 error = filename_lookup(dfd, name, lookup_flags, &path, NULL); 822 - if (error) 823 - goto out; 824 - error = mnt_want_write(path.mnt); 825 - if (error) 826 - goto out_release; 827 - error = chown_common(&path, user, group); 828 - mnt_drop_write(path.mnt); 829 - out_release: 830 - path_put(&path); 831 - if (retry_estale(error, lookup_flags)) { 832 - lookup_flags |= LOOKUP_REVAL; 833 - goto retry; 821 + if (!error) { 822 + error = mnt_want_write(path.mnt); 823 + if (!error) { 824 + error = chown_common(&path, user, group); 825 + mnt_drop_write(path.mnt); 826 + } 827 + path_put(&path); 828 + if (retry_estale(error, lookup_flags)) { 829 + lookup_flags |= LOOKUP_REVAL; 830 + goto retry; 831 + } 834 832 } 835 - out: 836 - putname(name); 837 833 return error; 838 834 } 839 835