]> git.baikalelectronics.ru Git - kernel.git/commit
zonefs: Fix race between modprobe and mount
authorZhang Xiaoxu <zhangxiaoxu5@huawei.com>
Sun, 20 Nov 2022 10:57:59 +0000 (18:57 +0800)
committerDamien Le Moal <damien.lemoal@opensource.wdc.com>
Tue, 22 Nov 2022 05:18:32 +0000 (14:18 +0900)
commit0563478594b5f6482b1cb8e646a8503c3f0d5e34
tree67a28fe370db741219eeb1b5a7cc9ee255876af2
parentd9f2d4e548e3d8c26b31f6bbfa482d8d2969b912
zonefs: Fix race between modprobe and mount

There is a race between modprobe and mount as below:

 modprobe zonefs                | mount -t zonefs
--------------------------------|-------------------------
 zonefs_init                    |
  register_filesystem       [1] |
                                | zonefs_fill_super    [2]
  zonefs_sysfs_init         [3] |

1. register zonefs suceess, then
2. user can mount the zonefs
3. if sysfs initialize failed, the module initialize failed.

Then the mount process maybe some error happened since the module
initialize failed.

Let's register zonefs after all dependency resource ready. And
reorder the dependency resource release in module exit.

Fixes: 9cee73cf45b7 ("zonefs: Export open zone resource information through sysfs")
Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
fs/zonefs/super.c