Message ID | 1413715184-30196-2-git-send-email-richard@nod.at (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sun, 19 Oct 2014 12:39:44 +0200 Richard Weinberger <richard@nod.at> wrote: > d_splice_alias() can return a valid dentry, NULL or an ERR_PTR. > Currently the code checks not for ERR_PTR and my oops in > ocfs2_dentry_attach_lock(). It's unclear what the second sentence is trying to tell us. The patch fixes an oops? If so, a copy of the trace would be useful, as would an explanation of why it occurred. If not, I'm all confused.
Am 21.10.2014 um 01:12 schrieb Andrew Morton: > On Sun, 19 Oct 2014 12:39:44 +0200 Richard Weinberger <richard@nod.at> wrote: > >> d_splice_alias() can return a valid dentry, NULL or an ERR_PTR. >> Currently the code checks not for ERR_PTR and my oops in >> ocfs2_dentry_attach_lock(). > > It's unclear what the second sentence is trying to tell us. The patch > fixes an oops? If so, a copy of the trace would be useful, as would an > explanation of why it occurred. If not, I'm all confused. ocfs2_dentry_attach_lock() derefs the dentry pointer. If d_splice_alias() returns ERR_PTR(-EIO) it will oops. Thanks, //richard
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c index 8add6f1..b931e04 100644 --- a/fs/ocfs2/namei.c +++ b/fs/ocfs2/namei.c @@ -158,7 +158,7 @@ bail_add: * NOTE: This dentry already has ->d_op set from * ocfs2_get_parent() and ocfs2_get_dentry() */ - if (ret) + if (!IS_ERR_OR_NULL(ret)) dentry = ret; status = ocfs2_dentry_attach_lock(dentry, inode,
d_splice_alias() can return a valid dentry, NULL or an ERR_PTR. Currently the code checks not for ERR_PTR and my oops in ocfs2_dentry_attach_lock(). Fix this by using IS_ERR_OR_NULL(). Cc: Mark Fasheh <mfasheh@suse.com> Cc: Joel Becker <jlbec@evilplan.org> Cc: ocfs2-devel@oss.oracle.com Signed-off-by: Richard Weinberger <richard@nod.at> --- fs/ocfs2/namei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)