slavaim / redirfs

A Linux file system filter based on redirfs
33 stars 25 forks source link

kernel panic during umount #16

Open tohosys opened 4 years ago

tohosys commented 4 years ago

Dear @slavaim,

Could you please give me some help? There is kernel panic if umount without deleting path.

test step: 1) insmod roflt 2) rfsctl -f roflt -i /test1 3) mount /dev/sdxx /test1 4) umount /dev/sdxx

dump stack:

0 [ffff98e3f2ccfac0] machine_kexec at ffffffffaf063674

1 [ffff98e3f2ccfb20] __crash_kexec at ffffffffaf11cf32

2 [ffff98e3f2ccfbf0] crash_kexec at ffffffffaf11d020

3 [ffff98e3f2ccfc08] oops_end at ffffffffaf76d758

4 [ffff98e3f2ccfc30] die at ffffffffaf02f95b

5 [ffff98e3f2ccfc60] do_trap at ffffffffaf76cea0

6 [ffff98e3f2ccfcb0] do_invalid_op at ffffffffaf02c2a4

7 [ffff98e3f2ccfd60] invalid_op at ffffffffaf77912e

[exception RIP: shrink_dcache_for_umount_subtree+460] RIP: ffffffffaf25a9bc RSP: ffff98e3f2ccfe10 RFLAGS: 00010246 RAX: 000000000000004d RBX: ffff98e354797680 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffff98e49f013898 RDI: ffff98e49f013898 RBP: ffff98e3f2ccfe30 R8: 6e6544203a475542 R9: 66207972746e6544 R10: 0000000000000833 R11: 3533653839666666 R12: ffff98e354797680 R13: 00000000000003f3 R14: ffffffffb00e65b0 R15: ffff98e3e1a85910 ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018

8 [ffff98e3f2ccfe38] shrink_dcache_for_umount at ffffffffaf25c2ef

9 [ffff98e3f2ccfe50] generic_shutdown_super at ffffffffaf24416f

10 [ffff98e3f2ccfe70] kill_block_super at ffffffffaf244627

11 [ffff98e3f2ccfe90] deactivate_locked_super at ffffffffaf24496e

12 [ffff98e3f2ccfeb0] deactivate_super at ffffffffaf2450f6

13 [ffff98e3f2ccfec8] cleanup_mnt at ffffffffaf26366f

14 [ffff98e3f2ccfee0] __cleanup_mnt at ffffffffaf263702

15 [ffff98e3f2ccfef0] task_work_run at ffffffffaf0be7db

16 [ffff98e3f2ccff30] do_notify_resume at ffffffffaf02bc65

17 [ffff98e3f2ccff50] int_signal at ffffffffaf776124

Notes: 1) If i delete path by "rfsctl -f roflt -c" before umount then no problem. 2) If i hold some mounted file like "tail -f /test1/locktest" and umount by "umount -l /dev/sdxx" wirh lazy option then no problem. 3) OS is CentOS 7.

thanks.

tohosys commented 4 years ago

workaround: