From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752059AbbKGExG (ORCPT ); Fri, 6 Nov 2015 23:53:06 -0500 Received: from m50-138.163.com ([123.125.50.138]:52766 "EHLO m50-138.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751021AbbKGExE (ORCPT ); Fri, 6 Nov 2015 23:53:04 -0500 From: Geliang Tang To: Anton Vorontsov , Colin Cross , Kees Cook , Tony Luck Cc: Geliang Tang , linux-kernel@vger.kernel.org Subject: [PATCH v2 3/3] pstore: drop file opened reference count Date: Sat, 7 Nov 2015 12:43:49 +0800 Message-Id: <4df0455fbe40f22f36ad5d3752c1d67ff4ec0b44.1446869434.git.geliangtang@163.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: References: In-Reply-To: References: <337377a3fbcf855d6a5217e06fcd8c8a979f2853.1446869434.git.geliangtang@163.com> X-CM-TRANSID: C9GowAA31dahgT1WIUNYBA--.3814S3 X-Coremail-Antispam: 1Uf129KBjvJXoW7Kr1xJryrurW3tryktrW7XFb_yoW5JFy5pr s5Gr90q3yfJ34kJr47uFs0qrs8CF4fAr1Fvr1qy34Iv3W5Crnak34Fy3W3KFW8Zr98Cw12 qr1FkrWUCr98JaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jo_M3UUUUU= X-Originating-IP: [116.77.145.83] X-CM-SenderInfo: 5jhoxtpqjwt0rj6rljoofrz/1tbiNQKrmVSIJ9B1jgAAsV Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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