From: Jan Kara <jack@suse.cz>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: linux-fsdevel@vger.kernel.org,
Alexander Viro <viro@zeniv.linux.org.uk>, Jan Kara <jack@suse.cz>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH] mm: Fully initialize invalidate_lock, amend lock class later
Date: Fri, 17 Sep 2021 13:39:21 +0200 [thread overview]
Message-ID: <20210917113920.GD5284@quack2.suse.cz> (raw)
In-Reply-To: <20210901084403.g4fezi23cixemlhh@linutronix.de>
On Wed 01-09-21 10:44:03, Sebastian Andrzej Siewior wrote:
> The function __init_rwsem() is not part of the official API, it just a helper
> function used by init_rwsem().
> Changing the lock's class and name should be done by using
> lockdep_set_class_and_name() after the has been fully initialized. The overhead
> of the additional class struct and setting it twice is negligible and it works
> across all locks.
>
> Fully initialize the lock with init_rwsem() and then set the custom class and
> name for the lock.
>
> Fixes: 730633f0b7f95 ("mm: Protect operations adding pages to page cache with invalidate_lock")
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Fine by me, thanks for the fix. I'll queue it to my tree and push it to
Linus.
Honza
> ---
> fs/inode.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/fs/inode.c b/fs/inode.c
> index cb41f02d8cedf..a49695f57e1ea 100644
> --- a/fs/inode.c
> +++ b/fs/inode.c
> @@ -190,8 +190,10 @@ int inode_init_always(struct super_block *sb, struct inode *inode)
> mapping_set_gfp_mask(mapping, GFP_HIGHUSER_MOVABLE);
> mapping->private_data = NULL;
> mapping->writeback_index = 0;
> - __init_rwsem(&mapping->invalidate_lock, "mapping.invalidate_lock",
> - &sb->s_type->invalidate_lock_key);
> + init_rwsem(&mapping->invalidate_lock);
> + lockdep_set_class_and_name(&mapping->invalidate_lock,
> + &sb->s_type->invalidate_lock_key,
> + "mapping.invalidate_lock");
> inode->i_private = NULL;
> inode->i_mapping = mapping;
> INIT_HLIST_HEAD(&inode->i_dentry); /* buggered by rcu freeing */
> --
> 2.33.0
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
prev parent reply other threads:[~2021-09-17 11:39 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-01 8:44 [PATCH] mm: Fully initialize invalidate_lock, amend lock class later Sebastian Andrzej Siewior
2021-09-17 10:34 ` Sebastian Andrzej Siewior
2021-09-17 11:39 ` Jan Kara [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210917113920.GD5284@quack2.suse.cz \
--to=jack@suse.cz \
--cc=bigeasy@linutronix.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).