Bug 1693457

Summary: overlayfs update to upstream 4.18
Product: Red Hat Enterprise Linux 7 Reporter: Miklos Szeredi <mszeredi>
Component: kernelAssignee: Miklos Szeredi <mszeredi>
kernel sub component: overlayfs QA Contact: Kun Wang <kunwan>
Status: CLOSED ERRATA Docs Contact:
Severity: medium    
Priority: medium CC: xzhou
Version: 7.7   
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-3.10.0-1041.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-08-06 12:29:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1662265    
Bug Blocks: 1462393, 1462408, 1462409, 1473641, 1497423, 1497426, 1497427, 1506439, 1519077, 1526439, 1558349, 1597597, 1601740    

Description Miklos Szeredi 2019-03-27 21:28:52 UTC
This fixes the following bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1462408
https://bugzilla.redhat.com/show_bug.cgi?id=1462409
https://bugzilla.redhat.com/show_bug.cgi?id=1473641
https://bugzilla.redhat.com/show_bug.cgi?id=1497423
https://bugzilla.redhat.com/show_bug.cgi?id=1497426
https://bugzilla.redhat.com/show_bug.cgi?id=1497427
https://bugzilla.redhat.com/show_bug.cgi?id=1506439
https://bugzilla.redhat.com/show_bug.cgi?id=1519077
https://bugzilla.redhat.com/show_bug.cgi?id=1526439
https://bugzilla.redhat.com/show_bug.cgi?id=1558349
https://bugzilla.redhat.com/show_bug.cgi?id=1597597
https://bugzilla.redhat.com/show_bug.cgi?id=1601740

List of commits to backport:

5955102c9984 wrappers for ->i_mutex access
2864f3014242 iget_locked et.al.: make sure we don't return bad inodes
af7bd4dc1309 vfs: create vfs helper vfs_tmpfile()
e7f52429b4a5 ovl: check if upperdir fs supports O_TMPFILE
01633fd25418 overlayfs: use uuid_t instead of uuid_be
6787341a0f15 ovl: check snprintf return
31e8ccea3cd7 ovl: fix readdir error value
b5efccbe0a12 ovl: constant d_ino across copy up
4edb83bb1041 ovl: constant d_ino for non-merge dirs
ff7a5fb0f1d5 overlayfs, locking: Remove smp_mb__before_spinlock() usage
191a3980c616 ovl: cleanup d_real for negative
495e64293911 vfs: add flags to d_real()
cd91304e7190 ovl: fix relatime for directories
7c6893e3c9ab ovl: don't allow writing ioctl on lower layer
954c736f865d ovl: fix may_write_real() for overlayfs directories
b79e05aaa166 ovl: no direct iteration for dir with origin xattr
95e598e7ace2 ovl: simplify ovl_check_empty_and_clear()
07f6fff14836 ovl: fix rmdir problem on non-merge dir with origin xattr
ee023c30d7d6 ovl: move include of ovl_entry.h into overlayfs.h
b93436320c1e ovl: re-structure overlay lower layers in-memory
2a9c6d066e98 ovl: allocate anonymous devs for lowerdirs
ba1e563cdc6b ovl: return anonymous st_dev for lower inodes
a0c5ad307ac0 ovl: relax same fs constraint for constant st_ino
f30536f0f955 ovl: update cache version of impure parent on rename
f121aadede37 vfs: add path_put_init()
8aafcb593d25 ovl: use path_put_init() in error paths for ovl_fill_super()
6ee8acf0f72b ovl: split out ovl_get_upperpath() from ovl_fill_super()
87ad447a9d4f ovl: split out ovl_get_workpath() from ovl_fill_super()
53dbb0b4787e ovl: split out ovl_get_lowerstack() from ovl_fill_super()
21a3b317a601 ovl: split out ovl_get_upper() from ovl_fill_super()
8ed61dc37ee0 ovl: split out ovl_get_workdir() from ovl_fill_super()
c0d91fb91011 ovl: split out ovl_get_lower_layers() from ovl_fill_super()
f7e3a7d947f8 ovl: split out ovl_get_indexdir() from ovl_fill_super()
95e6d4177cb7 ovl: grab reference to workbasedir early
a9075cdb467d ovl: factor out ovl_free_fs() helper
c6fe62549313 ovl: change order of setup in ovl_fill_super()
6e88256e197d ovl: reduce the number of arguments for ovl_workdir_create()
520d7c867f26 ovl: move ovl_get_workdir() and ovl_get_lower_layers()
5064975e7fec ovl: clean up getting upper layer
bca44b52f835 ovl: clean up workdir creation
4155c10a0309 ovl: clean up getting lower layers
ad204488d304 ovl: rename ufs to ofs
d9768076068f ovl: remove unneeded arg from ovl_verify_origin()
08d8f8a5b094 ovl: Pass ovl_get_nlink() parameters in right order
b02a16e6413a ovl: update ctx->pos on impure dir iteration
e8d4bfe3a715 ovl: Sync upper dirty data when syncing overlayfs
7879cb43f9a7 ovl: Use PTR_ERR_OR_ZERO()
da2e6b7eeda8 ovl: fix overlay: warning prefix
31747eda41ef ovl: hash directory inodes for fsnotify
d796e77f1dd5 ovl: fix failure to fsync lower dir
6d0a8a90a5bb ovl: take lower dir inode mutex outside upper sb_writers lock
f81678173ce2 ovl: fix another overlay: warning prefix
2ba9d57e6504 ovl: take mnt_want_write() for work/index dir setup
a5a927a7c82e ovl: take mnt_want_write() for removing impure xattr
9678e6303057 ovl: fix inconsistent d_ino for legacy merge dir
a683737ba924 ovl: disable index when no xattr support
972d0093c2f7 ovl: force r/o mount when index dir creation fails
d583ed7d1388 ovl: store layer index in ovl_layer
2e1a532883cf ovl: factor out ovl_check_origin_fh()
1eff1a1deec7 ovl: simplify arguments to ovl_check_origin_fh()
051224438af2 ovl: generalize ovl_verify_origin() and helpers
60b866420ba7 ovl: update documentation of inodes index feature
f168f1098dd9 ovl: add support for "nfs_export" configuration
37b12916c0f8 ovl: verify stored origin fh matches lower dir
86eaa13046d5 ovl: unbless lower st_ino of unverified origin
ad1d615cec1c ovl: use directory index entries for consistency verification
7db25d36d925 ovl: verify whiteout index entries on mount
e8f9e5b780b0 ovl: verify directory index entries on mount
9ee60ce24911 ovl: cleanup temp index entries
24b33ee104ec ovl: create ovl_need_index() helper
fbd2d2074bde ovl: index all non-dir on copy up for NFS export
016b720f5558 ovl: index directories on copy up for NFS export
89a17556ce4d ovl: cleanup dir index when dir nlink drops to zero
e7dd0e71348c ovl: whiteout index when union nlink drops to zero
24f0b1720369 ovl: whiteout orphan index entries on mount
91ffe7beb31e ovl: factor out ovl_get_index_fh() helper
0aceb53e73be ovl: do not pass overlay dentry to ovl_get_inode()
829c28be9bb9 ovl: use d_splice_alias() in place of d_add() in lookup
aa3ff3c152ff ovl: copy up of disconnected dentries
c62520a83bce ovl: store 'has_upper' and 'opaque' as bit flags
f9c34674bc60 vfs: factor out helpers d_instantiate_anon() and d_alloc_anon()
a01f64b5c06c ovl: document NFS export
8ed5eec9d6c4 ovl: encode pure upper file handles
8556a4205b11 ovl: decode pure upper file handles
3985b70a3e3f ovl: decode connected upper dir file handles
b305e8443f3a ovl: encode non-indexed upper file handles
05e1f11816d7 ovl: copy up before encoding non-connectable dir file handle
03e1c584ffbc ovl: encode lower file handles
f941866fc4a8 ovl: decode lower non-dir file handles
f71bd9cfb692 ovl: decode indexed non-dir file handles
9436a1a339fa ovl: decode lower file handles of unlinked but open files
3b0bfc6ed3c4 ovl: decode indexed dir file handles
988925164f65 ovl: decode pure lower dir file handles
7a9dadef9684 ovl: hash non-indexed dir by upper inode for NFS export
4b91c30a5a19 ovl: lookup connected ancestor of dir in inode cache
061701540349 ovl: lookup indexed ancestor of lower dir
8383f1748829 ovl: wire up NFS export operations
acd1d71598f7 xfs: preserve i_rdev when recycling a reclaimable inode
2aed489d163a ovl: fix regression in fsnotify of overlay merge dir
9b6faee07470 ovl: check ERR_PTR() return value from ovl_encode_fh()
76c479480b9a nfsd: encode stat->mtime for getattr instead of inode->i_mtime
39ca1bf624b6 nfsd: store stat times in fill_pre_wcc() instead of inode times
764baba80168 ovl: hash non-dir by lower inode for fsnotify
2ca3c148a062 ovl: check lower ancestry on encode of lower dir file handle
7168179fcf25 ovl: check ERR_PTR() return value from ovl_lookup_real()
b5095f24e791 ovl: fix ptr_ret.cocci warnings
d1fe96c0e4de ovl: redirect_dir=nofollow should not follow redirect for opaque lower
36cd95dfa1ed ovl: update Kconfig texts
695b46e76b62 ovl: set i_ino to the value of st_ino for NFS export
452061fd4521 ovl: Set d->last properly during lookup
3ec9b3fafcaf ovl: fix lookup with middle layer opaque dir and absolute path redirects
9f99e50d460a ovl: set lower layer st_dev only if setting lower st_ino
5b2cccd32c66 ovl: disambiguate ovl_encode_fh()
8a22efa15b46 ovl: do not try to reconnect a disconnected origin dentry
8b58924ad55c ovl: lookup in inode cache first when decoding lower file handle
e9b77f90cc23 ovl: Do not check for redirect if this is last layer
102b0d11cbe8 ovl: set d->is_dir and d->opaque for last path element
0471a9cdb00f ovl: cleanup setting OVL_INDEX
3a291774d17e ovl: add WARN_ON() for non-dir redirect cases
8f35cf51cd24 ovl: cleanup ovl_update_time()
da309e8c055d ovl: factor out ovl_map_dev_ino() helper
5148626b806a ovl: allocate anon bdev per unique lower fs
e487d889b7e3 ovl: constant st_ino for non-samefs with xino
12574a9f4c9c ovl: consistent i_ino for non-samefs with xino
adbf4f7ea834 ovl: consistent d_ino for non-samefs with xino
795939a93e60 ovl: add support for "xino" mount and config options
16149013f839 ovl: update documentation w.r.t "xino" feature
05af4fe79b80 ovl: update documentation for unionmount-testsuite
4280f74a577d ovl: Kconfig documentation fixes
a8b9e0ceed32 ovl: remove WARN_ON() real inode attributes mismatch
6cf00764b008 ovl: strip debug argument from ovl_do_ helpers
471ec5dcf4e7 ovl: struct cattr cleanups
95a1c8153ad8 ovl: return dentry from ovl_create_real()
137ec526a20c ovl: create helper ovl_create_temp()
f73cc77c3aff ovl: make ovl_create_real() cope with vfs_mkdir() safely
dd8ac699ed6e ovl: return EIO on internal error
b148cba403f4 ovl: clean up copy-up error paths
80ea09a002bf vfs: factor out inode_insert5()
b231509616fe udf: fix the udf_iget() vs. udf_new_inode() races
1e2e547a93a0 do d_instantiate/unlock_new_inode combinations safely
c2b6d621c4ff new primitive: discard_new_inode()
e950564b97fd vfs: don't evict uninitialized inode
6faf05c2b2b4 ovl: set I_CREATING on inode being created
ac6a52eb65b5 ovl: Pass argument to ovl_get_inode() in a structure
01b39dcc9568 ovl: use inode_insert5() to hash a newly created inode
67810693077a ovl: fix wrong use of impure dir cache in ovl_iterate()
64bed6cbe38b nfsd: fix leaked file lock with nfs exported overlayfs
8c25741aaad8 ovl: fix oopses in ovl_fill_super() failure paths
63e132528032 ovl: fix memory leak on unlink of indexed file
601350ff58d5 ovl: fix access beyond unterminated strings
1a8f8d2a443e ovl: fix format of setxattr debug
babf4770be0a ovl: fix error handling in ovl_verify_set_fh()
6cd078702f2f ovl: fix recursive oi->lock in ovl_link()
155b8a0492a9 ovl: fix decode of dir file handle with multi lower layers

Comment 2 Bruno Meneguele 2019-04-24 14:26:05 UTC
Patch(es) committed on kernel-3.10.0-1041.el7

Comment 7 errata-xmlrpc 2019-08-06 12:29:45 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2019:2029