[PATCH] pstore: drop file opened reference count

From: Geliang Tang
Date: Sat Oct 24 2015 - 22:58:30 EST


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 <geliangtang@xxxxxxx>
---
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 3586491..556b9ec 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/