Hi,

When stacking squashfs+tmpfs using Unionfs 2.5.9.1 on
2.6.38-hardened-r6 (Hardened Gentoo), apparently rare conditions cause
dentry_open to fail. In Liberté Linux, xorg.conf is moved from /root
to /etc/X11 (/ is Unionfs) during boot. One user experienced the
following [1]:

# ls /etc/X11
ls: cannot open directory .: Invalid argument

After reproducing the issue with user's SquashFS image:

Jun 18 15:07:08 [kernel] dentry_open called with NULL vfsmount
Jun 18 15:07:08 [kernel] Pid: 5379, comm: ls Not tainted 2.6.38-hardened-r6 #0
Jun 18 15:07:08 [kernel] Call Trace:
Jun 18 15:07:08 [kernel]  [<c109f266>] ? dentry_open+0x29/0x71
Jun 18 15:07:08 [kernel]  [<cc864ee2>] ? unionfs_open+0x222/0x4cc [unionfs]
Jun 18 15:07:08 [kernel]  [<cc864cc0>] ? unionfs_open+0x0/0x4cc [unionfs]
Jun 18 15:07:08 [kernel]  [<c109f13c>] ? __dentry_open+0x13a/0x23b
Jun 18 15:07:08 [kernel]  [<c109f2f3>] ? nameidata_to_filp+0x45/0x50
Jun 18 15:07:08 [kernel]  [<c10aa27a>] ? finish_open+0x78/0x129
Jun 18 15:07:08 [kernel]  [<c10ab081>] ? do_path_lookup+0x55/0xff
Jun 18 15:07:08 [kernel]  [<c10abf45>] ? do_filp_open+0x15c/0x532
Jun 18 15:07:08 [kernel]  [<c110c8f8>] ? gr_learn_resource+0x3b/0x18b
Jun 18 15:07:08 [kernel]  [<c10b4633>] ? expand_files+0x2c/0x167
Jun 18 15:07:08 [kernel]  [<c12032b1>] ? _raw_spin_unlock+0x10/0x1a
Jun 18 15:07:08 [kernel]  [<c109ef02>] ? do_sys_open+0x54/0xde
Jun 18 15:07:08 [kernel]  [<c109efda>] ? sys_open+0x23/0x28
Jun 18 15:07:08 [kernel]  [<c120371c>] ? syscall_call+0x7/0xb

or:

Jun 18 15:17:00 [kernel] dentry_open called with NULL vfsmount
Jun 18 15:17:00 [kernel] Pid: 5648, comm: find Not tainted 2.6.38-hardened-r6 #0
Jun 18 15:17:00 [kernel] Call Trace:
Jun 18 15:17:00 [kernel]  [<c109f266>] ? dentry_open+0x29/0x71
Jun 18 15:17:00 [kernel]  [<cc864ee2>] ? unionfs_open+0x222/0x4cc [unionfs]
Jun 18 15:17:00 [kernel]  [<cc864cc0>] ? unionfs_open+0x0/0x4cc [unionfs]
Jun 18 15:17:00 [kernel]  [<c109f13c>] ? __dentry_open+0x13a/0x23b
Jun 18 15:17:00 [kernel]  [<c109f2f3>] ? nameidata_to_filp+0x45/0x50
Jun 18 15:17:00 [kernel]  [<c10aa27a>] ? finish_open+0x78/0x129
Jun 18 15:17:00 [kernel]  [<c10ab0ea>] ? do_path_lookup+0xbe/0xff
Jun 18 15:17:00 [kernel]  [<c10abf45>] ? do_filp_open+0x15c/0x532
Jun 18 15:17:00 [kernel]  [<c110c8f8>] ? gr_learn_resource+0x3b/0x18b
Jun 18 15:17:00 [kernel]  [<c10b4633>] ? expand_files+0x2c/0x167
Jun 18 15:17:00 [kernel]  [<c12032b1>] ? _raw_spin_unlock+0x10/0x1a
Jun 18 15:17:00 [kernel]  [<c109ef02>] ? do_sys_open+0x54/0xde
Jun 18 15:17:00 [kernel]  [<c109efda>] ? sys_open+0x23/0x28
Jun 18 15:17:00 [kernel]  [<c120371c>] ? syscall_call+0x7/0xb
Jun 18 15:17:00 [kernel]  [<c1200000>] ? cpu_callback+0xc4/0x1b6

Touching /etc/X11 on tmpfs branch (but not on unionfs), as well as
remounting unionfs appear to work around the problem.

Best regards,
Maxim

[1] 
https://sourceforge.net/tracker/index.php?func=detail&aid=3319525&group_id=320084&atid=1345611
_______________________________________________
unionfs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs

Reply via email to