From: Richard Guy Briggs <rgb@redhat.com>
To: Paul Moore <paul@paul-moore.com>
Cc: jack@suse.cz, viro@zeniv.linux.org.uk, linux-audit@redhat.com,
linux-fsdevel@vger.kernel.org, amir73il@gmail.com
Subject: Re: [PATCH 09/11] audit: Allocate fsnotify mark independently of chunk
Date: Wed, 3 Oct 2018 18:39:09 -0400 [thread overview]
Message-ID: <20181003223909.smlgskao36dcogxa@madcap2.tricolour.ca> (raw)
In-Reply-To: <CAHC9VhR4H0ESq1Mfkom=16BK14mD8-SqcFcK=_FNrGHaQw6Sgw@mail.gmail.com>
On 2018-10-03 18:08, Paul Moore wrote:
> On Tue, Sep 4, 2018 at 12:06 PM Jan Kara <jack@suse.cz> wrote:
> > Allocate fsnotify mark independently instead of embedding it inside
> > chunk. This will allow us to just replace chunk attached to mark when
> > growing / shrinking chunk instead of replacing mark attached to inode
> > which is a more complex operation.
> >
> > Signed-off-by: Jan Kara <jack@suse.cz>
> > ---
> > kernel/audit_tree.c | 64 +++++++++++++++++++++++++++++++++++++++++------------
> > 1 file changed, 50 insertions(+), 14 deletions(-)
> >
> > diff --git a/kernel/audit_tree.c b/kernel/audit_tree.c
> > index 0cd08b3581f1..481fdc190c2f 100644
> > --- a/kernel/audit_tree.c
> > +++ b/kernel/audit_tree.c
> > @@ -142,10 +148,33 @@ static void audit_mark_put_chunk(struct audit_chunk *chunk)
> > call_rcu(&chunk->head, __put_chunk);
> > }
> >
> > +static inline struct audit_tree_mark *audit_mark(struct fsnotify_mark *entry)
> > +{
> > + return container_of(entry, struct audit_tree_mark, mark);
> > +}
> > +
> > +static struct audit_chunk *mark_chunk(struct fsnotify_mark *mark)
> > +{
> > + return audit_mark(mark)->chunk;
> > +}
> > +
>
> ...
>
> > @@ -426,7 +460,7 @@ static int tag_chunk(struct inode *inode, struct audit_tree *tree)
> > if (!old_entry)
> > return create_chunk(inode, tree);
> >
> > - old = container_of(old_entry, struct audit_chunk, mark);
> > + old = mark_chunk(old_entry)->chunk;
>
> I'm pretty sure you mean the following instead?
>
> old = mark_chunk(old_entry);
Yup, nice catch. This could have been
"old = audit_mark(old_entry)->chunk"
but the mark_chunk() helper avoids that. (It compiles because it got
fixed/replaced in the following patch.)
This is why "old" should be called "old_chunk" and "old_entry" should be
called "old_mark" (which the latter is in the last patch).
> > /* are we already there? */
> > spin_lock(&hash_lock);
>
> paul moore
- RGB
--
Richard Guy Briggs <rgb@redhat.com>
Sr. S/W Engineer, Kernel Security, Base Operating Systems
Remote, Ottawa, Red Hat Canada
IRC: rgb, SunRaycer
Voice: +1.647.777.2635, Internal: (81) 32635
next prev parent reply other threads:[~2018-10-04 5:29 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-04 16:06 [PATCH 0/11 v3] audit: Fix various races when tagging and untagging mounts Jan Kara
2018-09-04 16:06 ` [PATCH 01/11] audit_tree: Remove mark->lock locking Jan Kara
2018-09-04 16:06 ` [PATCH 02/11] audit: Fix possible spurious -ENOSPC error Jan Kara
2018-09-04 16:06 ` [PATCH 03/11] audit: Fix possible tagging failures Jan Kara
2018-09-04 16:06 ` [PATCH 04/11] audit: Embed key into chunk Jan Kara
2018-09-13 20:06 ` Richard Guy Briggs
2018-09-04 16:06 ` [PATCH 05/11] audit: Make hash table insertion safe against concurrent lookups Jan Kara
2018-09-04 16:06 ` [PATCH 06/11] audit: Factor out chunk replacement code Jan Kara
2018-09-04 16:06 ` [PATCH 07/11] audit: Remove pointless check in insert_hash() Jan Kara
2018-09-04 16:06 ` [PATCH 08/11] audit: Provide helper for dropping mark's chunk reference Jan Kara
2018-09-04 16:06 ` [PATCH 09/11] audit: Allocate fsnotify mark independently of chunk Jan Kara
2018-09-14 14:09 ` Richard Guy Briggs
2018-09-17 16:46 ` Jan Kara
2018-10-03 22:11 ` Paul Moore
2018-10-03 22:08 ` Paul Moore
2018-10-03 22:39 ` Richard Guy Briggs [this message]
2018-10-04 6:57 ` Jan Kara
2018-09-04 16:06 ` [PATCH 10/11] audit: Replace chunk attached to mark instead of replacing mark Jan Kara
2018-09-04 16:06 ` [PATCH 11/11] audit: Use 'mark' name for fsnotify_mark variables Jan Kara
2018-09-14 18:29 ` Richard Guy Briggs
2018-09-17 16:44 ` Jan Kara
2018-09-17 18:13 ` Richard Guy Briggs
2018-09-04 16:06 ` [PATCH 12/11 TESTSUITE] audit_testsuite: Add stress test for tree watches Jan Kara
2018-09-14 18:21 ` Richard Guy Briggs
2018-09-17 16:56 ` Jan Kara
2018-10-05 21:06 ` Paul Moore
2018-10-09 7:40 ` Jan Kara
2018-10-10 6:43 ` Paul Moore
2018-10-11 11:39 ` Jan Kara
2018-10-11 23:03 ` Paul Moore
2018-10-15 10:04 ` Jan Kara
2018-10-15 15:39 ` Paul Moore
2018-10-17 10:09 ` Jan Kara
2018-11-14 0:34 ` Paul Moore
2018-11-14 12:16 ` Jan Kara
2018-11-19 15:19 ` Paul Moore
2018-09-14 19:13 ` [PATCH 0/11 v3] audit: Fix various races when tagging and untagging mounts Richard Guy Briggs
2018-09-17 16:57 ` Jan Kara
2018-10-04 1:20 ` Paul Moore
2018-10-04 6:59 ` 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=20181003223909.smlgskao36dcogxa@madcap2.tricolour.ca \
--to=rgb@redhat.com \
--cc=amir73il@gmail.com \
--cc=jack@suse.cz \
--cc=linux-audit@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=paul@paul-moore.com \
--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).