Hi wenjun93, kernel test robot noticed the following build warnings: [auto build test WARNING on mszeredi-vfs/overlayfs-next] [also build test WARNING on linus/master v6.3 next-20230505] [cannot apply to mszeredi-vfs/next] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/wenjun93/overlayfs-clean-error-handling/20230506-162258 base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git overlayfs-next patch link: https://lore.kernel.org/r/20230506082111.1655980-1-gwj1235%40yeah.net patch subject: [PATCH] overlayfs: clean error handling config: ia64-allyesconfig (https://download.01.org/0day-ci/archive/20230506/202305061745.OX1sfYxg-lkp@xxxxxxxxx/config) compiler: ia64-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/d5593461bec1095c3008da7403952420e637c01a git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review wenjun93/overlayfs-clean-error-handling/20230506-162258 git checkout d5593461bec1095c3008da7403952420e637c01a # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=ia64 olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash fs/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202305061745.OX1sfYxg-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): fs/overlayfs/super.c: In function 'ovl_workdir_create': >> fs/overlayfs/super.c:804:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 804 | if (d_really_is_negative(work)) | ^~ fs/overlayfs/super.c:806:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 806 | goto out_dput; | ^~~~ fs/overlayfs/super.c: In function 'ovl_check_rename_whiteout': fs/overlayfs/super.c:1195:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1195 | if (IS_ERR(temp)) | ^~ fs/overlayfs/super.c:1197:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1197 | goto out_unlock; | ^~~~ fs/overlayfs/super.c:1216:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1216 | if (IS_ERR(whiteout)) | ^~ fs/overlayfs/super.c:1218:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1218 | goto cleanup_temp; | ^~~~ fs/overlayfs/super.c: In function 'ovl_make_workdir': fs/overlayfs/super.c:1295:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1295 | if (IS_ERR_OR_NULL(workdir)) | ^~ fs/overlayfs/super.c:1297:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1297 | goto out; | ^~~~ fs/overlayfs/super.c: In function 'ovl_get_layers': fs/overlayfs/super.c:1610:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1610 | if (ofs->fs == NULL) | ^~ fs/overlayfs/super.c:1612:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1612 | goto out; | ^~~~ fs/overlayfs/super.c: In function 'ovl_get_lowerstack': fs/overlayfs/super.c:1760:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1760 | if (!oe) | ^~ fs/overlayfs/super.c:1762:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1762 | goto out_err; | ^~~~ fs/overlayfs/super.c: In function 'ovl_fill_super': fs/overlayfs/super.c:1904:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1904 | if (WARN_ON(sb->s_user_ns != current_user_ns())) | ^~ fs/overlayfs/super.c:1906:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1906 | goto out; | ^~~~ fs/overlayfs/super.c:1911:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1911 | if (!ofs) | ^~ fs/overlayfs/super.c:1913:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1913 | goto out; | ^~~~ fs/overlayfs/super.c:1916:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1916 | if (!cred) | ^~ fs/overlayfs/super.c:1918:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1918 | goto out_err; | ^~~~ fs/overlayfs/super.c:1940:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1940 | if (!splitlower) | ^~ fs/overlayfs/super.c:1942:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1942 | goto out_err; | ^~~~ fs/overlayfs/super.c:1953:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1953 | if (!layers) | ^~ fs/overlayfs/super.c:1955:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1955 | goto out_err; | ^~~~ fs/overlayfs/super.c:2010:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 2010 | if (IS_ERR(oe)) | ^~ fs/overlayfs/super.c:2012:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 2012 | goto out_err; | ^~~~ fs/overlayfs/super.c:2065:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 2065 | if (!root_dentry) | ^~ fs/overlayfs/super.c:2067:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 2067 | goto out_free_oe; | ^~~~ -- fs/overlayfs/namei.c: In function 'ovl_verify_index': >> fs/overlayfs/namei.c:536:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 536 | if (index->d_name.len < sizeof(struct ovl_fb)*2) | ^~ fs/overlayfs/namei.c:538:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 538 | goto fail; | ^~~~ fs/overlayfs/namei.c:542:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 542 | if (!fh) | ^~ fs/overlayfs/namei.c:544:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 544 | goto fail; | ^~~~ fs/overlayfs/namei.c:546:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 546 | if (hex2bin(fh->buf, index->d_name.name, len)) | ^~ fs/overlayfs/namei.c:548:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 548 | goto fail; | ^~~~ fs/overlayfs/namei.c: In function 'ovl_lookup': fs/overlayfs/namei.c:910:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 910 | if (!stack) | ^~ fs/overlayfs/namei.c:912:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 912 | goto out_put_upper; | ^~~~ fs/overlayfs/namei.c:1071:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1071 | if (!oe) | ^~ fs/overlayfs/namei.c:1073:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1073 | goto out_put; | ^~~~ fs/overlayfs/namei.c:1118:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1118 | if (IS_ERR(inode)) | ^~ fs/overlayfs/namei.c:1120:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1120 | goto out_free_oe; | ^~~~ -- fs/overlayfs/dir.c: In function 'ovl_cleanup_and_whiteout': >> fs/overlayfs/dir.c:118:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 118 | if (IS_ERR(whiteout)) | ^~ fs/overlayfs/dir.c:120:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 120 | return err; | ^~~~~~ fs/overlayfs/dir.c: In function 'ovl_create_real': fs/overlayfs/dir.c:179:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 179 | if (newdentry->d_inode) | ^~ fs/overlayfs/dir.c:181:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 181 | goto out; | ^~~~ fs/overlayfs/dir.c: In function 'ovl_create_upper': fs/overlayfs/dir.c:339:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 339 | if (IS_ERR(newdentry)) | ^~ fs/overlayfs/dir.c:341:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 341 | goto out_unlock; | ^~~~ fs/overlayfs/dir.c: In function 'ovl_clear_empty': fs/overlayfs/dir.c:397:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 397 | if (IS_ERR(opaquedir)) | ^~ fs/overlayfs/dir.c:399:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 399 | goto out_unlock; | ^~~~ fs/overlayfs/dir.c: In function 'ovl_create_over_whiteout': fs/overlayfs/dir.c:476:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 476 | if (IS_ERR(upper)) | ^~ fs/overlayfs/dir.c:478:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 478 | goto out_unlock; | ^~~~ fs/overlayfs/dir.c:480:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 480 | if (d_is_negative(upper) || !IS_WHITEOUT(d_inode(upper))) | ^~ fs/overlayfs/dir.c:482:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 482 | goto out_dput; | ^~~~ fs/overlayfs/dir.c:485:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 485 | if (IS_ERR(newdentry)) | ^~ fs/overlayfs/dir.c:487:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 487 | goto out_dput; | ^~~~ fs/overlayfs/dir.c: In function 'ovl_create_or_link': fs/overlayfs/dir.c:581:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 581 | if (!override_cred) | ^~ fs/overlayfs/dir.c:583:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 583 | goto out_revert_creds; | ^~~~ fs/overlayfs/dir.c: In function 'ovl_create_object': fs/overlayfs/dir.c:636:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 636 | if (!inode) | ^~ fs/overlayfs/dir.c:638:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 638 | goto out_drop_write; | ^~~~ fs/overlayfs/dir.c: In function 'ovl_remove_and_whiteout': fs/overlayfs/dir.c:762:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 762 | if (IS_ERR(opaquedir)) | ^~ fs/overlayfs/dir.c:764:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 764 | goto out; | ^~~~ fs/overlayfs/dir.c:773:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 773 | if (IS_ERR(upper)) | ^~ fs/overlayfs/dir.c:775:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 775 | goto out_unlock; | ^~~~ fs/overlayfs/dir.c: In function 'ovl_remove_upper': fs/overlayfs/dir.c:813:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 813 | if (IS_ERR(opaquedir)) | ^~ fs/overlayfs/dir.c:815:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 815 | goto out; | ^~~~ fs/overlayfs/dir.c:821:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 821 | if (IS_ERR(upper)) | ^~ fs/overlayfs/dir.c:823:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 823 | goto out_unlock; | ^~~~ fs/overlayfs/dir.c:825:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 825 | if ((opaquedir && upper != opaquedir) || | ^~ fs/overlayfs/dir.c:828:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 828 | goto out_dput_upper; | ^~~~ fs/overlayfs/dir.c: In function 'ovl_rename': fs/overlayfs/dir.c:1101:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1101 | if (flags & ~(RENAME_EXCHANGE | RENAME_NOREPLACE)) | ^~ fs/overlayfs/dir.c:1103:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1103 | goto out; | ^~~~ fs/overlayfs/dir.c:1108:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1108 | if (!ovl_can_move(old) || (!overwrite && !ovl_can_move(new))) -- fs/overlayfs/readdir.c: In function 'ovl_iterate': >> fs/overlayfs/readdir.c:767:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 767 | if (IS_ERR(cache)) | ^~ fs/overlayfs/readdir.c:769:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 769 | goto out; | ^~~~ -- fs/overlayfs/copy_up.c: In function 'ovl_create_index': >> fs/overlayfs/copy_up.c:511:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 511 | if (IS_ERR(temp)) | ^~ fs/overlayfs/copy_up.c:513:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 513 | goto free_name; | ^~~~ fs/overlayfs/copy_up.c: In function 'ovl_copy_up_workdir': fs/overlayfs/copy_up.c:709:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 709 | if (lock_rename(c->workdir, c->destdir) != NULL) | ^~ fs/overlayfs/copy_up.c:711:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 711 | goto unlock; | ^~~~ fs/overlayfs/copy_up.c:720:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 720 | if (IS_ERR(temp)) | ^~ fs/overlayfs/copy_up.c:722:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 722 | goto unlock; | ^~~~ fs/overlayfs/copy_up.c:745:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 745 | if (IS_ERR(upper)) | ^~ fs/overlayfs/copy_up.c:747:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 747 | goto cleanup; | ^~~~ -- fs/overlayfs/export.c: In function 'ovl_lookup_real_one': >> fs/overlayfs/export.c:383:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 383 | if (ovl_dentry_real_at(connected, layer->idx) != parent) | ^~ fs/overlayfs/export.c:385:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 385 | goto fail; | ^~~~ fs/overlayfs/export.c: In function 'ovl_lower_fh_to_d': fs/overlayfs/export.c:719:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 719 | if (IS_ERR(inode)) | ^~ fs/overlayfs/export.c:721:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 721 | goto out_err; | ^~~~ fs/overlayfs/export.c:744:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 744 | if (IS_ERR_OR_NULL(upper)) | ^~ fs/overlayfs/export.c:746:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 746 | goto out_err; | ^~~~ fs/overlayfs/export.c: In function 'ovl_fh_to_dentry': fs/overlayfs/export.c:813:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 813 | if (IS_ERR(fh)) | ^~ fs/overlayfs/export.c:815:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 815 | goto out_err; | ^~~~ vim +/if +804 fs/overlayfs/super.c e9be9d5e76e348 Miklos Szeredi 2014-10-24 761 ad204488d3046b Miklos Szeredi 2017-11-10 762 static struct dentry *ovl_workdir_create(struct ovl_fs *ofs, 6b8aa129dcbe0e Amir Goldstein 2017-06-21 763 const char *name, bool persist) e9be9d5e76e348 Miklos Szeredi 2014-10-24 764 { ad204488d3046b Miklos Szeredi 2017-11-10 765 struct inode *dir = ofs->workbasedir->d_inode; 08f4c7c86d4cf1 Miklos Szeredi 2020-06-04 766 struct vfsmount *mnt = ovl_upper_mnt(ofs); e9be9d5e76e348 Miklos Szeredi 2014-10-24 767 struct dentry *work; e9be9d5e76e348 Miklos Szeredi 2014-10-24 768 int err; e9be9d5e76e348 Miklos Szeredi 2014-10-24 769 bool retried = false; e9be9d5e76e348 Miklos Szeredi 2014-10-24 770 5955102c9984fa Al Viro 2016-01-22 771 inode_lock_nested(dir, I_MUTEX_PARENT); e9be9d5e76e348 Miklos Szeredi 2014-10-24 772 retry: 22f289ce1f8b10 Christian Brauner 2022-04-04 773 work = ovl_lookup_upper(ofs, name, ofs->workbasedir, strlen(name)); e9be9d5e76e348 Miklos Szeredi 2014-10-24 774 e9be9d5e76e348 Miklos Szeredi 2014-10-24 775 if (!IS_ERR(work)) { c11b9fdd6a612f Miklos Szeredi 2016-09-01 776 struct iattr attr = { c11b9fdd6a612f Miklos Szeredi 2016-09-01 777 .ia_valid = ATTR_MODE, 32a3d848eb91a2 Al Viro 2016-12-04 778 .ia_mode = S_IFDIR | 0, c11b9fdd6a612f Miklos Szeredi 2016-09-01 779 }; e9be9d5e76e348 Miklos Szeredi 2014-10-24 780 e9be9d5e76e348 Miklos Szeredi 2014-10-24 781 if (work->d_inode) { e9be9d5e76e348 Miklos Szeredi 2014-10-24 782 err = -EEXIST; e9be9d5e76e348 Miklos Szeredi 2014-10-24 783 if (retried) e9be9d5e76e348 Miklos Szeredi 2014-10-24 784 goto out_dput; e9be9d5e76e348 Miklos Szeredi 2014-10-24 785 6b8aa129dcbe0e Amir Goldstein 2017-06-21 786 if (persist) 6b8aa129dcbe0e Amir Goldstein 2017-06-21 787 goto out_unlock; 6b8aa129dcbe0e Amir Goldstein 2017-06-21 788 e9be9d5e76e348 Miklos Szeredi 2014-10-24 789 retried = true; 576bb263450bbb Christian Brauner 2022-04-04 790 err = ovl_workdir_cleanup(ofs, dir, mnt, work, 0); e9be9d5e76e348 Miklos Szeredi 2014-10-24 791 dput(work); 235ce9ed96bc62 Amir Goldstein 2020-08-30 792 if (err == -EINVAL) { 235ce9ed96bc62 Amir Goldstein 2020-08-30 793 work = ERR_PTR(err); 235ce9ed96bc62 Amir Goldstein 2020-08-30 794 goto out_unlock; 235ce9ed96bc62 Amir Goldstein 2020-08-30 795 } e9be9d5e76e348 Miklos Szeredi 2014-10-24 796 goto retry; e9be9d5e76e348 Miklos Szeredi 2014-10-24 797 } e9be9d5e76e348 Miklos Szeredi 2014-10-24 798 576bb263450bbb Christian Brauner 2022-04-04 799 err = ovl_mkdir_real(ofs, dir, &work, attr.ia_mode); 1f5573cfe7a705 Miklos Szeredi 2021-11-04 800 if (err) 1f5573cfe7a705 Miklos Szeredi 2021-11-04 801 goto out_dput; 1f5573cfe7a705 Miklos Szeredi 2021-11-04 802 1f5573cfe7a705 Miklos Szeredi 2021-11-04 803 /* Weird filesystem returning with hashed negative (kernfs)? */ 1f5573cfe7a705 Miklos Szeredi 2021-11-04 @804 if (d_really_is_negative(work)) d5593461bec109 wenjun93 2023-05-06 805 err = -EINVAL; 1f5573cfe7a705 Miklos Szeredi 2021-11-04 806 goto out_dput; c11b9fdd6a612f Miklos Szeredi 2016-09-01 807 cb348edb6bef72 Miklos Szeredi 2016-10-04 808 /* cb348edb6bef72 Miklos Szeredi 2016-10-04 809 * Try to remove POSIX ACL xattrs from workdir. We are good if: cb348edb6bef72 Miklos Szeredi 2016-10-04 810 * cb348edb6bef72 Miklos Szeredi 2016-10-04 811 * a) success (there was a POSIX ACL xattr and was removed) cb348edb6bef72 Miklos Szeredi 2016-10-04 812 * b) -ENODATA (there was no POSIX ACL xattr) cb348edb6bef72 Miklos Szeredi 2016-10-04 813 * c) -EOPNOTSUPP (POSIX ACL xattrs are not supported) cb348edb6bef72 Miklos Szeredi 2016-10-04 814 * cb348edb6bef72 Miklos Szeredi 2016-10-04 815 * There are various other error values that could effectively cb348edb6bef72 Miklos Szeredi 2016-10-04 816 * mean that the xattr doesn't exist (e.g. -ERANGE is returned cb348edb6bef72 Miklos Szeredi 2016-10-04 817 * if the xattr name is too long), but the set of filesystems cb348edb6bef72 Miklos Szeredi 2016-10-04 818 * allowed as upper are limited to "normal" ones, where checking cb348edb6bef72 Miklos Szeredi 2016-10-04 819 * for the above two errors is sufficient. cb348edb6bef72 Miklos Szeredi 2016-10-04 820 */ 31acceb97500dd Christian Brauner 2022-09-22 821 err = ovl_do_remove_acl(ofs, work, XATTR_NAME_POSIX_ACL_DEFAULT); e1ff3dd1ae52ce Miklos Szeredi 2016-09-05 822 if (err && err != -ENODATA && err != -EOPNOTSUPP) c11b9fdd6a612f Miklos Szeredi 2016-09-01 823 goto out_dput; c11b9fdd6a612f Miklos Szeredi 2016-09-01 824 31acceb97500dd Christian Brauner 2022-09-22 825 err = ovl_do_remove_acl(ofs, work, XATTR_NAME_POSIX_ACL_ACCESS); e1ff3dd1ae52ce Miklos Szeredi 2016-09-05 826 if (err && err != -ENODATA && err != -EOPNOTSUPP) c11b9fdd6a612f Miklos Szeredi 2016-09-01 827 goto out_dput; c11b9fdd6a612f Miklos Szeredi 2016-09-01 828 c11b9fdd6a612f Miklos Szeredi 2016-09-01 829 /* Clear any inherited mode bits */ c11b9fdd6a612f Miklos Szeredi 2016-09-01 830 inode_lock(work->d_inode); a15506eac96fdb Christian Brauner 2022-04-04 831 err = ovl_do_notify_change(ofs, work, &attr); c11b9fdd6a612f Miklos Szeredi 2016-09-01 832 inode_unlock(work->d_inode); c11b9fdd6a612f Miklos Szeredi 2016-09-01 833 if (err) c11b9fdd6a612f Miklos Szeredi 2016-09-01 834 goto out_dput; 6b8aa129dcbe0e Amir Goldstein 2017-06-21 835 } else { 6b8aa129dcbe0e Amir Goldstein 2017-06-21 836 err = PTR_ERR(work); 6b8aa129dcbe0e Amir Goldstein 2017-06-21 837 goto out_err; e9be9d5e76e348 Miklos Szeredi 2014-10-24 838 } e9be9d5e76e348 Miklos Szeredi 2014-10-24 839 out_unlock: 6b8aa129dcbe0e Amir Goldstein 2017-06-21 840 inode_unlock(dir); e9be9d5e76e348 Miklos Szeredi 2014-10-24 841 return work; e9be9d5e76e348 Miklos Szeredi 2014-10-24 842 e9be9d5e76e348 Miklos Szeredi 2014-10-24 843 out_dput: e9be9d5e76e348 Miklos Szeredi 2014-10-24 844 dput(work); 6b8aa129dcbe0e Amir Goldstein 2017-06-21 845 out_err: 1bd0a3aea4357e lijiazi 2019-12-16 846 pr_warn("failed to create directory %s/%s (errno: %i); mounting read-only\n", ad204488d3046b Miklos Szeredi 2017-11-10 847 ofs->config.workdir, name, -err); 6b8aa129dcbe0e Amir Goldstein 2017-06-21 848 work = NULL; e9be9d5e76e348 Miklos Szeredi 2014-10-24 849 goto out_unlock; e9be9d5e76e348 Miklos Szeredi 2014-10-24 850 } e9be9d5e76e348 Miklos Szeredi 2014-10-24 851 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests