[<prev] [next>] [day] [month] [year] [list]
Message-Id: <c293a078074331c1b221bc3bb0335eb623ae7afe.1445741504.git.geliangtang@163.com>
Date: Sun, 25 Oct 2015 10:54:17 +0800
From: Geliang Tang <geliangtang@....com>
To: Anton Vorontsov <anton@...msg.org>,
Colin Cross <ccross@...roid.com>,
Kees Cook <keescook@...omium.org>,
Tony Luck <tony.luck@...el.com>
Cc: Geliang Tang <geliangtang@....com>, linux-kernel@...r.kernel.org
Subject: [PATCH] pstore: drop file opened reference count
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@....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 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists