All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: linux-fsdevel@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>, Jan Kara <jack@suse.cz>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH] mm: Fully initialize invalidate_lock, amend lock class later
Date: Fri, 17 Sep 2021 12:34:23 +0200	[thread overview]
Message-ID: <20210917103423.gin4i6rr6vcy7zbw@linutronix.de> (raw)
In-Reply-To: <20210901084403.g4fezi23cixemlhh@linutronix.de>

On 2021-09-01 10:44:04 [+0200], To linux-fsdevel@vger.kernel.org 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>

ping.

> ---
>  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 */

Sebastian

  reply	other threads:[~2021-09-17 10:34 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 [this message]
2021-09-17 11:39 ` Jan Kara

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=20210917103423.gin4i6rr6vcy7zbw@linutronix.de \
    --to=bigeasy@linutronix.de \
    --cc=jack@suse.cz \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.