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: Yanchuan Nian <ycnian@gmail.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Родитель
8d96b10639
Коммит
7175fe9015
|
@ -925,8 +925,8 @@ pnfs_find_alloc_layout(struct inode *ino,
|
|||
if (likely(nfsi->layout == NULL)) { /* Won the race? */
|
||||
nfsi->layout = new;
|
||||
return new;
|
||||
}
|
||||
pnfs_free_layout_hdr(new);
|
||||
} else if (new != NULL)
|
||||
pnfs_free_layout_hdr(new);
|
||||
out_existing:
|
||||
pnfs_get_layout_hdr(nfsi->layout);
|
||||
return nfsi->layout;
|
||||
|
|
Загрузка…
Ссылка в новой задаче