Messages in this thread | | | Date | Tue, 16 Oct 2018 15:08:40 -0400 | From | "Theodore Y. Ts'o" <> | Subject | Re: [PATCH] ext4: direct return when jinode allocate failed |
| |
On Tue, Oct 16, 2018 at 10:55:26PM +0800, fishland wrote: > The jinode does not need protected by *i_lock*, we can return > directly if memory allocation fails. >
I don't see anything wrong with this patch, but at the same time, I'm not sure I see the benefit, either. Checking for the allocation failure is cheap, and moving it out spinlock doesn't buy much; not to mention that the allocation failure is going to be highly uncommon.
What inspired this commit?
- Ted
> Signed-off-by: Liu Song <liu.song11@zte.com.cn> > Reviewed-by: Wang Yi <wang.yi59@zte.com.cn> > --- > fs/ext4/inode.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index d767e993591d..67ba6f062de5 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -4384,12 +4384,11 @@ int ext4_inode_attach_jinode(struct inode *inode) > return 0; > > jinode = jbd2_alloc_inode(GFP_KERNEL); > + if (!jinode) > + return -ENOMEM; > + > spin_lock(&inode->i_lock); > if (!ei->jinode) { > - if (!jinode) { > - spin_unlock(&inode->i_lock); > - return -ENOMEM; > - } > ei->jinode = jinode; > jbd2_journal_init_jbd_inode(ei->jinode, inode); > jinode = NULL; > -- > 2.17.1 >
| |