Hi All, I am using branch 'origin/aufs3.19' from git://github.com/sfjro/aufs3-linux.git. and want to use smack with aufs. So I enabled the option CONFIG_AUFS_XATTR and booted the kernel.
To test it I did 1) mount /dev/hdb1 to /mnt # mount | grep hdb1 /dev/hdb1 on /mnt type ext4 (rw,relatime,data=ordered) 2) Used the below test script to make the aufs mount ---------------------------------------- # pwd /mnt # cat test_aufs_cp.sh mkdir a b c chsmack -a 'k1' a chsmack -a 'k1' b chsmack -a 'k1' c cd a for i in 1 2 3 do echo $i > a$i.txt chsmack -a 'k1' a$i.txt done cd ../b for i in 1 2 3 do echo $i > b$i.txt chsmack -a 'k1' b$i.txt done cd ../c for i in 1 2 3 do echo $i > c$i.txt chsmack -a 'k1' c$i.txt done cd .. mkdir mnt mount -t aufs -o br=./a=rw:./b=ro:./c=ro:,noplink,smackfsdef=k1,smackfsroot=k1 -o udba=reval none ./mnt --------------------------------- 3) Run the script and make sure that it is mounted # mount | grep aufs none on /mnt/mnt type aufs (rw,relatime,si=669ecc04df7a829e,noplink) 4) Now if I cd to /mnt/mnt and do 'ls' it hangs and I get the below oops. # dmesg [ 148.855382] ------------[ cut here ]------------ [ 148.855382] kernel BUG at fs/aufs/sbinfo.c:336! [ 148.855382] invalid opcode: 0000 [#1] PREEMPT SMP [ 148.855382] Modules linked in: [ 148.855382] CPU: 0 PID: 140 Comm: ls Not tainted 3.19.0-yocto-standard+ #1 [ 148.855382] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 [ 148.855382] task: ffff880006749800 ti: ffff880000078000 task.ti: ffff880000078000 [ 148.855382] RIP: 0010:[<ffffffff813b8598>] [<ffffffff813b8598>] si_pid_set+0x78/0xd0 [ 148.855382] RSP: 0018:ffff88000007b9e8 EFLAGS: 00000286 [ 148.855382] RAX: ffff88000669c000 RBX: 000000000000008b RCX: 0000000000000100 [ 148.855382] RDX: 00000000ffffffff RSI: 0000000000000028 RDI: ffff88000669b000 [ 148.855382] RBP: ffff88000007ba08 R08: 0000000000000000 R09: 0000000000000000 [ 148.855382] R10: ffff880006740d00 R11: 0000000000000000 R12: ffff88000668b800 [ 148.855382] R13: ffff88000669b000 R14: 0000000000000028 R15: ffff88000672e480 [ 148.855382] FS: 0000000000000000(0000) GS:ffff880007c00000(0063) knlGS:00000000f75f9700 [ 148.855382] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b [ 148.855382] CR2: 00000000f774f0d3 CR3: 0000000006757000 CR4: 00000000000006f0 [ 148.855382] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 148.855382] DR3: 0000000000000000 DR6: 0000000000000000 DR7: 0000000000000000 [ 148.855382] Stack: [ 148.855382] ffff88000007b9f8 ffff88000669b000 ffff88000668b800 ffff8800069fc300 [ 148.855382] ffff88000007ba78 ffffffff813b8685 0000000000000000 0000000000000000 [ 148.855382] ffff88000007ba48 ffffffff81968b68 ffffffff811a0300 ffff8800066b3a00 [ 148.855382] Call Trace: [ 148.855382] [<ffffffff813b8685>] si_read_lock+0x95/0x170 [ 148.855382] [<ffffffff81968b68>] ? preempt_schedule_irq+0x48/0x80 [ 148.855382] [<ffffffff811a0300>] ? inode_init_always+0xf0/0x1e0 [ 148.855382] [<ffffffff813bf52e>] ? au_xino_do_write+0x3e/0x100 [ 148.855382] [<ffffffff813ecfcb>] au_lgxattr+0x2b/0x1e0 [ 148.855382] [<ffffffff81177ec6>] ? kmem_cache_alloc_trace+0x136/0x250 [ 148.855382] [<ffffffff813ed7a9>] aufs_getxattr+0x29/0x30 [ 148.855382] [<ffffffff81408d8d>] smk_fetch.isra.21+0x5d/0xa0 [ 148.855382] [<ffffffff81408f27>] smack_d_instantiate+0x157/0x330 [ 148.855382] [<ffffffff8196bd4b>] ? _raw_spin_lock+0x1b/0x60 [ 148.855382] [<ffffffff814030eb>] security_d_instantiate+0x1b/0x30 [ 148.855382] [<ffffffff8119da1a>] d_splice_alias+0x9a/0x2f0 [ 148.855382] [<ffffffff813ddbb4>] aufs_lookup+0x244/0x430 [ 148.855382] [<ffffffff811903bd>] lookup_real+0x1d/0x70 [ 148.855382] [<ffffffff81191123>] __lookup_hash+0x33/0x40 [ 148.855382] [<ffffffff81192dc3>] lookup_slow+0x43/0xc0 [ 148.855382] [<ffffffff81195692>] path_lookupat+0x652/0x7b0 [ 148.855382] [<ffffffff81177c1e>] ? kmem_cache_alloc+0xde/0x250 [ 148.855382] [<ffffffff81177bae>] ? kmem_cache_alloc+0x6e/0x250 [ 148.855382] [<ffffffff81196770>] ? getname_flags+0x30/0x130 [ 148.855382] [<ffffffff81195816>] filename_lookup.isra.32+0x26/0x80 [ 148.855382] [<ffffffff811970f4>] user_path_at_empty+0x54/0xa0 [ 148.855382] [<ffffffff81968039>] ? __schedule+0x3f9/0xa40 [ 148.855382] [<ffffffff81197151>] user_path_at+0x11/0x20 [ 148.855382] [<ffffffff8118b872>] vfs_fstatat+0x52/0xa0 [ 148.855382] [<ffffffff8118b8fe>] vfs_lstat+0x1e/0x20 [ 148.855382] [<ffffffff8104f8ba>] sys32_lstat64+0x1a/0x40 [ 148.855382] [<ffffffff81003d23>] ? do_device_not_available+0x23/0x30 [ 148.855382] [<ffffffff8196e25e>] ? device_not_available+0x1e/0x30 [ 148.855382] [<ffffffff8196eea8>] cstar_dispatch+0x7/0x25 [ 148.855382] Code: 11 01 d3 81 e3 ff 7f 00 00 29 d3 48 63 db 48 0f a3 18 19 d2 85 d2 75 13 3e 48 0f ab 18 48 83 c4 08 5b 41 5c 41 5d 5d c3 0f 1f 00 <0f> 0b 66 0f 1f 44 00 00 4c 8d a7 50 04 00 00 4c 89 e7 e8 f1 1b [ 148.855382] RIP [<ffffffff813b8598>] si_pid_set+0x78/0xd0 [ 148.855382] RSP <ffff88000007b9e8> [ 148.865550] ---[ end trace e932f7d7f14c8e88 ]--- [ 148.866532] ------------[ cut here ]------------ [ 148.866599] kernel BUG at fs/aufs/sbinfo.c:336! [ 148.866641] invalid opcode: 0000 [#2] PREEMPT SMP [ 148.866712] Modules linked in: [ 148.866818] CPU: 0 PID: 140 Comm: ls Tainted: G D 3.19.0-yocto-standard+ #1 [ 148.866868] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 [ 148.866968] task: ffff880006749800 ti: ffff880000078000 task.ti: ffff880000078000 [ 148.867019] RIP: 0010:[<ffffffff813b8598>] [<ffffffff813b8598>] si_pid_set+0x78/0xd0 [ 148.867112] RSP: 0018:ffff88000007b5f8 EFLAGS: 00000286 [ 148.867161] RAX: ffff88000669c000 RBX: 000000000000008b RCX: ffff880006689000 [ 148.867165] RDX: 00000000ffffffff RSI: ffff8800070cb400 RDI: ffff88000669b000 [ 148.867165] RBP: ffff88000007b618 R08: ffff880007ffd000 R09: 0000000000000007 [ 148.867165] R10: ffffffff81ee2808 R11: 0000000000000000 R12: ffff88000668b800 [ 148.867165] R13: ffff88000669b000 R14: ffff880006740700 R15: ffff88000669b000 [ 148.867165] FS: 0000000000000000(0000) GS:ffff880007c00000(0000) knlGS:0000000000000000 [ 148.867165] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b [ 148.867165] CR2: 00000000f774f0d3 CR3: 0000000001e11000 CR4: 00000000000006f0 [ 148.867165] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 148.867165] DR3: 0000000000000000 DR6: 0000000000000000 DR7: 0000000000000000 [ 148.867165] Stack: [ 148.867165] ffff88000007b618 ffff8800069f8060 ffff88000668b800 ffffffff813d8d70 [ 148.867165] ffff88000007b668 ffffffff813d5426 ffff88000007b658 ffff8800070cb400 [ 148.867165] 0000000000000051 ffff880006740700 0000000000000000 ffff8800070cb400 [ 148.867165] Call Trace: [ 148.867165] [<ffffffff813d8d70>] ? aufs_flush_dir+0x20/0x20 [ 148.867165] [<ffffffff813d5426>] au_do_flush+0x46/0x260 [ 148.867165] [<ffffffff813d8d65>] aufs_flush_dir+0x15/0x20 [ 148.867165] [<ffffffff81184ad3>] filp_close+0x33/0x80 [ 148.867165] [<ffffffff811a3e98>] put_files_struct+0x78/0xd0 [ 148.867165] [<ffffffff811a3f9b>] exit_files+0x4b/0x60 [ 148.867165] [<ffffffff81056ecb>] do_exit+0x57b/0xb70 [ 148.867165] [<ffffffff8109cba5>] ? kmsg_dump+0xc5/0xd0 [ 148.867165] [<ffffffff8100692e>] oops_end+0x7e/0xb0 [ 148.867165] [<ffffffff81006bcb>] die+0x4b/0x70 [ 148.867165] [<ffffffff810030fa>] do_trap+0xba/0x150 [ 148.867165] [<ffffffff8100336a>] do_error_trap+0x7a/0xf0 [ 148.867165] [<ffffffff813b8598>] ? si_pid_set+0x78/0xd0 [ 148.867165] [<ffffffff814639f7>] ? debug_smp_processor_id+0x17/0x20 [ 148.867165] [<ffffffff81186460>] ? new_sync_read+0xb0/0xb0 [ 148.867165] [<ffffffff81003da0>] do_invalid_op+0x20/0x30 [ 148.867165] [<ffffffff8196e22e>] invalid_op+0x1e/0x30 [ 148.867165] [<ffffffff813b8598>] ? si_pid_set+0x78/0xd0 [ 148.867165] [<ffffffff813b8685>] si_read_lock+0x95/0x170 [ 148.867165] [<ffffffff81968b68>] ? preempt_schedule_irq+0x48/0x80 [ 148.867165] [<ffffffff811a0300>] ? inode_init_always+0xf0/0x1e0 [ 148.867165] [<ffffffff813bf52e>] ? au_xino_do_write+0x3e/0x100 [ 148.867165] [<ffffffff813ecfcb>] au_lgxattr+0x2b/0x1e0 [ 148.867165] [<ffffffff81177ec6>] ? kmem_cache_alloc_trace+0x136/0x250 [ 148.867165] [<ffffffff813ed7a9>] aufs_getxattr+0x29/0x30 [ 148.867165] [<ffffffff81408d8d>] smk_fetch.isra.21+0x5d/0xa0 [ 148.867165] [<ffffffff81408f27>] smack_d_instantiate+0x157/0x330 [ 148.867165] [<ffffffff8196bd4b>] ? _raw_spin_lock+0x1b/0x60 [ 148.867165] [<ffffffff814030eb>] security_d_instantiate+0x1b/0x30 [ 148.867165] [<ffffffff8119da1a>] d_splice_alias+0x9a/0x2f0 [ 148.867165] [<ffffffff813ddbb4>] aufs_lookup+0x244/0x430 [ 148.867165] [<ffffffff811903bd>] lookup_real+0x1d/0x70 [ 148.867165] [<ffffffff81191123>] __lookup_hash+0x33/0x40 [ 148.867165] [<ffffffff81192dc3>] lookup_slow+0x43/0xc0 [ 148.867165] [<ffffffff81195692>] path_lookupat+0x652/0x7b0 [ 148.867165] [<ffffffff81177c1e>] ? kmem_cache_alloc+0xde/0x250 [ 148.867165] [<ffffffff81177bae>] ? kmem_cache_alloc+0x6e/0x250 [ 148.867165] [<ffffffff81196770>] ? getname_flags+0x30/0x130 [ 148.867165] [<ffffffff81195816>] filename_lookup.isra.32+0x26/0x80 [ 148.867165] [<ffffffff811970f4>] user_path_at_empty+0x54/0xa0 [ 148.867165] [<ffffffff81968039>] ? __schedule+0x3f9/0xa40 [ 148.867165] [<ffffffff81197151>] user_path_at+0x11/0x20 [ 148.867165] [<ffffffff8118b872>] vfs_fstatat+0x52/0xa0 [ 148.867165] [<ffffffff8118b8fe>] vfs_lstat+0x1e/0x20 [ 148.867165] [<ffffffff8104f8ba>] sys32_lstat64+0x1a/0x40 [ 148.867165] [<ffffffff81003d23>] ? do_device_not_available+0x23/0x30 [ 148.867165] [<ffffffff8196e25e>] ? device_not_available+0x1e/0x30 [ 148.867165] [<ffffffff8196eea8>] cstar_dispatch+0x7/0x25 [ 148.867165] Code: 11 01 d3 81 e3 ff 7f 00 00 29 d3 48 63 db 48 0f a3 18 19 d2 85 d2 75 13 3e 48 0f ab 18 48 83 c4 08 5b 41 5c 41 5d 5d c3 0f 1f 00 <0f> 0b 66 0f 1f 44 00 00 4c 8d a7 50 04 00 00 4c 89 e7 e8 f1 1b [ 148.867165] RIP [<ffffffff813b8598>] si_pid_set+0x78/0xd0 [ 148.867165] RSP <ffff88000007b5f8> [ 148.879960] ---[ end trace e932f7d7f14c8e89 ]--- [ 148.880278] Fixing recursive fault but reboot is needed! # 5) The aufs and ext4 options enabled in the kernel are CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_AUFS_FS=y CONFIG_AUFS_BRANCH_MAX_127=y CONFIG_AUFS_SBILIST=y CONFIG_AUFS_XATTR=y CONFIG_AUFS_BDEV_LOOP=y CONFIG_AUFS_DEBUG=y CONFIG_AUFS_MAGIC_SYSRQ=y Is this the correct way to use xattr with aufs? or v3.19 does not support all the xattr(like the smack security label)? --Arun ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot