[D][SRU][PATCH 0/1] ovl: do not generate duplicate fsnotify events for "fake" path

Po-Hsu Lin po-hsu.lin at canonical.com
Mon Jun 17 11:04:24 UTC 2019


== SRU Justification ==
fanotify06 test from ubuntu_ltp_syscalls reported that test #1 for
overlayfs has received more than one expected event:
  <<<test_start>>>
  tag=fanotify06 stime=1560747299
  cmdline="fanotify06"
  contacts=""
  analysis=exit
  <<<test_output>>>
  incrementing stop
  tst_device.c:231: INFO: Using test device LTP_DEV='/dev/loop2'
  tst_mkfs.c:90: INFO: Formatting /dev/loop2 with ext2 opts='' extra opts=''
  mke2fs 1.44.6 (5-Mar-2019)
  tst_test.c:1112: INFO: Timeout per run is 0h 05m 00s
  fanotify06.c:169: INFO: Test #0: Fanotify merge mount mark
  fanotify06.c:147: PASS: group 0 got event: mask 2 pid=1136 fd=15
  ....
  fanotify06.c:230: PASS: group 8 got no event
  fanotify06.c:169: INFO: Test #1: Fanotify merge overlayfs mount mark
  fanotify06.c:208: FAIL: group 0 got more than one event (48 > 24)
  fanotify06.c:208: FAIL: group 1 got more than one event (48 > 24)
  fanotify06.c:208: FAIL: group 2 got more than one event (48 > 24)
  fanotify06.c:220: FAIL: group 3 got event
  fanotify06.c:220: FAIL: group 4 got event
  fanotify06.c:220: FAIL: group 5 got event
  fanotify06.c:220: FAIL: group 6 got event
  fanotify06.c:220: FAIL: group 7 got event
  fanotify06.c:220: FAIL: group 8 got event

  Summary:
  passed 9
  failed 9
  skipped 0
  warnings 0

This duplicated event was generated with operations on files with
"fake" path.

== Fix ==
* d9899030 (ovl: do not generate duplicate fsnotify events for "fake" path)

This patch can be cherry-picked into Disco.

Older kernels are not affected by this issue (without commit d1d04ef8)

== Test ==
Test kernel could be found here:
https://people.canonical.com/~phlin/kernel/lp-1833028-fanotify06-ovl/

Verified on a KVM node, the fanotify06 test will pass with this patched
disco kernel:
 fanotify06.c:169: INFO: Test #1: Fanotify merge overlayfs mount mark
 fanotify06.c:147: PASS: group 0 got event: mask 2 pid=5997 fd=30
 fanotify06.c:147: PASS: group 1 got event: mask 2 pid=5997 fd=30
 fanotify06.c:147: PASS: group 2 got event: mask 2 pid=5997 fd=30
 fanotify06.c:230: PASS: group 3 got no event
 fanotify06.c:230: PASS: group 4 got no event
 fanotify06.c:230: PASS: group 5 got no event
 fanotify06.c:230: PASS: group 6 got no event
 fanotify06.c:230: PASS: group 7 got no event
 fanotify06.c:230: PASS: group 8 got no event

== Regression Potential ==
Low, fix limited to the overlayfs and just corrects the flag behaviour
with "fake" path.


Amir Goldstein (1):
  ovl: do not generate duplicate fsnotify events for "fake" path

 fs/overlayfs/file.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

-- 
2.7.4




More information about the kernel-team mailing list