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/

Reply via email to