From: Ian Kent <raven@themaw.net>
To: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Cc: Jeff Mahoney <jeffm@suse.com>, autofs@vger.kernel.org
Subject: Re: [PATCH] autofs: Add BUG_ON(1) for non dir/link inode case
Date: Mon, 04 Jul 2016 14:08:27 +0800 [thread overview]
Message-ID: <1467612507.3317.13.camel@themaw.net> (raw)
In-Reply-To: <CAHndrB=8zS7zdr4X6aTby4TsqKc5waGjc3Lbrva-puZZv6q9pw@mail.gmail.com>
On Mon, 2016-07-04 at 13:04 +0900, Tomohiro Kusumi wrote:
> Thanks for your review.
> I've submitted the v2 patch which only changed BUG_ON to WARN_ON.
Yep, it's always called internally and should return something close to sensible
on error.
The case really shouldn't happen so a WARN_ON() is the better way to handle
this.
>
> I didn't use a return value of EINVAL as this function returns a pointer.
> (and I didn't want to return EINVAL casted to a pointer)
>
> 2016-07-04 11:24 GMT+09:00 Ian Kent <raven@themaw.net>:
> > On Sun, 2016-07-03 at 18:51 -0400, Jeff Mahoney wrote:
> > > On 7/3/16 6:29 AM, Tomohiro Kusumi wrote:
> > > > It's invalid if the given mode is neither dir nor link,
> > > > so don't let it fallthrough on else case.
> > >
> > > Is this case really worth crashing the entire system?
> > >
> > > Wouldn't a WARN_ON + return -EINVAL be sufficient? At the very least it
> > > means that a developer doesn't need to reboot to reload the module if
> > > they hit this.
> >
> > That error return should be sufficient to cover this case and the WARN_ON()
> > is
> > useful too.
> >
> > And while there is some justification for the BUG_ON() earlier I also think
> > an E
> > INVAL return would be more sensible there too.
> >
> > BUG()ing on errors that should be handled is really bad IMHO.
> >
> > >
> > > -Jeff
> > >
> > > > Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
> > > > ---
> > > > fs/autofs4/inode.c | 4 +++-
> > > > 1 file changed, 3 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c
> > > > index ad0ee93..7f35c82 100644
> > > > --- a/fs/autofs4/inode.c
> > > > +++ b/fs/autofs4/inode.c
> > > > @@ -305,6 +305,7 @@ int autofs4_fill_super(struct super_block *s, void
> > > > *data, int silent)
> > > > if (autofs_type_trigger(sbi->type))
> > > > __managed_dentry_set_managed(root);
> > > >
> > > > + BUG_ON(!root_inode->i_fop || !root_inode->i_op);
> > > > root_inode->i_fop = &autofs4_root_operations;
> > > > root_inode->i_op = &autofs4_dir_inode_operations;
> > > >
> > > > @@ -368,7 +369,8 @@ struct inode *autofs4_get_inode(struct super_block
> > > > *sb,
> > > > umode_t mode)
> > > > inode->i_fop = &autofs4_dir_operations;
> > > > } else if (S_ISLNK(mode)) {
> > > > inode->i_op = &autofs4_symlink_inode_operations;
> > > > - }
> > > > + } else
> > > > + BUG_ON(1);
> > > >
> > > > return inode;
> > > > }
> > > >
> > >
> > >
--
To unsubscribe from this list: send the line "unsubscribe autofs" in
prev parent reply other threads:[~2016-07-04 6:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-03 10:29 [PATCH] autofs: Add BUG_ON(1) for non dir/link inode case Tomohiro Kusumi
2016-07-03 22:51 ` Jeff Mahoney
2016-07-04 2:24 ` Ian Kent
2016-07-04 4:04 ` Tomohiro Kusumi
2016-07-04 6:08 ` Ian Kent [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=1467612507.3317.13.camel@themaw.net \
--to=raven@themaw.net \
--cc=autofs@vger.kernel.org \
--cc=jeffm@suse.com \
--cc=kusumi.tomohiro@gmail.com \
/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 read-only IMAP folder(s) and NNTP newsgroup(s).