提交 7175fe90 编写于 作者: Y Yanchuan Nian 提交者: Trond Myklebust

nfs: Check whether a layout pointer is NULL before free it

The new layout pointer in pnfs_find_alloc_layout() may be NULL because of
out of memory. we must do some check work, otherwise pnfs_free_layout_hdr()
will go wrong because it can not deal with a NULL pointer.
Signed-off-by: NYanchuan Nian <ycnian@gmail.com>
Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
上级 8d96b106
...@@ -925,8 +925,8 @@ pnfs_find_alloc_layout(struct inode *ino, ...@@ -925,8 +925,8 @@ pnfs_find_alloc_layout(struct inode *ino,
if (likely(nfsi->layout == NULL)) { /* Won the race? */ if (likely(nfsi->layout == NULL)) { /* Won the race? */
nfsi->layout = new; nfsi->layout = new;
return new; return new;
} } else if (new != NULL)
pnfs_free_layout_hdr(new); pnfs_free_layout_hdr(new);
out_existing: out_existing:
pnfs_get_layout_hdr(nfsi->layout); pnfs_get_layout_hdr(nfsi->layout);
return nfsi->layout; return nfsi->layout;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册