From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Biggers Subject: [RFC PATCH 07/25] fs/inode.c: export inode_lru_list_del() Date: Mon, 23 Oct 2017 14:40:40 -0700 Message-ID: <20171023214058.128121-8-ebiggers3@gmail.com> References: <20171023214058.128121-1-ebiggers3@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-1.v29.ch3.sourceforge.com with esmtps (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.89) (envelope-from ) id 1e6kUL-0004e4-1N for linux-f2fs-devel@lists.sourceforge.net; Mon, 23 Oct 2017 21:42:25 +0000 Received: from mail-io0-f195.google.com ([209.85.223.195]) by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:AES128-SHA:128) (Exim 4.76) id 1e6kUK-0000LE-Ad for linux-f2fs-devel@lists.sourceforge.net; Mon, 23 Oct 2017 21:42:24 +0000 Received: by mail-io0-f195.google.com with SMTP id h70so21696290ioi.4 for ; Mon, 23 Oct 2017 14:42:24 -0700 (PDT) In-Reply-To: <20171023214058.128121-1-ebiggers3@gmail.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net To: linux-fscrypt@vger.kernel.org Cc: Ryo Hashimoto , Gwendal Grignou , "Theodore Y . Ts'o" , Eric Biggers , linux-api@vger.kernel.org, Nick Desaulniers , linux-f2fs-devel@lists.sourceforge.net, keyrings@vger.kernel.org, linux-mtd@lists.infradead.org, Michael Halcrow , Sarthak Kukreti , linux-fsdevel@vger.kernel.org, Jaegeuk Kim , linux-ext4@vger.kernel.org From: Eric Biggers When a filesystem encryption key is removed, we need all files which had been "unlocked" (had ->i_crypt_info set up) with it to appear "locked" again. This is most easily done by evicting the inodes. This can currently be done using 'echo 2 > /proc/sys/vm/drop_caches'; however, that is overkill and not usable by non-root users. In preparation for allowing fs/crypto/ to evict just the needed inodes, export inode_lru_list_del() to modules. Signed-off-by: Eric Biggers --- fs/inode.c | 5 ++--- include/linux/fs.h | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/inode.c b/fs/inode.c index d1e35b53bb23..30ce98956801 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -420,13 +420,12 @@ void inode_add_lru(struct inode *inode) inode_lru_list_add(inode); } - -static void inode_lru_list_del(struct inode *inode) +void inode_lru_list_del(struct inode *inode) { - if (list_lru_del(&inode->i_sb->s_inode_lru, &inode->i_lru)) this_cpu_dec(nr_unused); } +EXPORT_SYMBOL_GPL(inode_lru_list_del); /** * inode_sb_list_add - add inode to the superblock list of inodes diff --git a/include/linux/fs.h b/include/linux/fs.h index 8cfb0877d32c..2833ace2f01d 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2879,6 +2879,7 @@ static inline void lockdep_annotate_inode_mutex_key(struct inode *inode) { }; extern void unlock_new_inode(struct inode *); extern unsigned int get_next_ino(void); extern void evict_inodes(struct super_block *sb); +extern void inode_lru_list_del(struct inode *inode); extern void __iget(struct inode * inode); extern void iget_failed(struct inode *); -- 2.15.0.rc0.271.g36b669edcc-goog ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot