In my recent commit, I added '.owner = THIS_MODULE' in both pstore_fs_type and pstore_file_operations to increase a reference count when pstore filesystem is mounted and pstore file is opened.[1]
But, it's repetitive. There is no need to increase the opened reference count. We only need to increase the mounted reference count. When a file is opened, the filesystem can't be unmounted. Hence the pstore module can't be unloaded either. So I drop the opened reference count in this patch. [1] https://lkml.org/lkml/2015/10/20/84 Signed-off-by: Geliang Tang <geliangt...@163.com> --- Here is the reference count test: $ sudo /sbin/insmod lib/zlib_deflate/zlib_deflate.ko $ sudo /sbin/insmod fs/pstore/pstore.ko $ lsmod Module Size Used by pstore 13301 0 zlib_deflate 20156 1 pstore $ sudo mount -t pstore pstore /sys/fs/pstore $ lsmod Module Size Used by pstore 13301 1 zlib_deflate 20156 1 pstore $ sudo /sbin/insmod lib/reed_solomon/reed_solomon.ko $ sudo /sbin/insmod fs/pstore/ramoops.ko mem_address=0x80000000 mem_size=0x40000 ecc=1 $ lsmod Module Size Used by ramoops 11156 0 reed_solomon 5878 1 ramoops pstore 13301 2 ramoops zlib_deflate 20156 1 pstore $ sudo rmmod ramoops $ lsmod Module Size Used by reed_solomon 5878 0 pstore 13301 1 zlib_deflate 20156 1 pstore $ tail -f /sys/fs/pstore/console-ramoops-0 & [1] 4479 $ lsmod Module Size Used by reed_solomon 5878 0 pstore 13301 1 zlib_deflate 20156 1 pstore $ sudo umount /sys/fs/pstore umount: /sys/fs/pstore: target is busy (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1).) $ kill -9 4479 [1]+ Killed tail -f /sys/fs/pstore/console-ramoops-0 $ lsmod Module Size Used by reed_solomon 5878 0 pstore 13301 1 zlib_deflate 20156 1 pstore $ sudo umount /sys/fs/pstore $ lsmod Module Size Used by reed_solomon 5878 0 pstore 13301 0 zlib_deflate 20156 1 pstore $ sudo rmmod pstore $ lsmod Module Size Used by reed_solomon 5878 0 zlib_deflate 20156 0 --- fs/pstore/inode.c | 1 - 1 file changed, 1 deletion(-) diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c index d8c439d..ac6c78fe 100644 --- a/fs/pstore/inode.c +++ b/fs/pstore/inode.c @@ -178,7 +178,6 @@ static loff_t pstore_file_llseek(struct file *file, loff_t off, int whence) } static const struct file_operations pstore_file_operations = { - .owner = THIS_MODULE, .open = pstore_file_open, .read = pstore_file_read, .llseek = pstore_file_llseek, -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/