From 86dc491a90fd3fcbd329d8844b7398a40e59644e Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Tue, 26 Mar 2013 12:21:57 -0500 Subject: [PATCH 1/1] LU-2753 llite: check alloc in ll_file_data_get, ll_dir_ioctl In ll_file_data_get() and ll_dir_ioctl() return error on failed allocations. Signed-off-by: John L. Hammond Change-Id: I122db2cede770261d75af209e92aa60d86ea85f2 Reviewed-on: http://review.whamcloud.com/5845 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Dmitry Eremin Reviewed-by: Sebastien Buisson --- lustre/llite/dir.c | 9 ++++++--- lustre/llite/file.c | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lustre/llite/dir.c b/lustre/llite/dir.c index a3086d0..febf6ea 100644 --- a/lustre/llite/dir.c +++ b/lustre/llite/dir.c @@ -1546,9 +1546,12 @@ out_rmdir: if (rc) RETURN(rc); - OBD_ALLOC_LARGE(lmm, lmmsize); - if (cfs_copy_from_user(lmm, lum, lmmsize)) - GOTO(free_lmm, rc = -EFAULT); + OBD_ALLOC_LARGE(lmm, lmmsize); + if (lmm == NULL) + RETURN(-ENOMEM); + + if (cfs_copy_from_user(lmm, lum, lmmsize)) + GOTO(free_lmm, rc = -EFAULT); switch (lmm->lmm_magic) { case LOV_USER_MAGIC_V1: diff --git a/lustre/llite/file.c b/lustre/llite/file.c index 05df5d8..ce4259d 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -55,7 +55,11 @@ struct ll_file_data *ll_file_data_get(void) struct ll_file_data *fd; OBD_SLAB_ALLOC_PTR_GFP(fd, ll_file_data_slab, CFS_ALLOC_IO); + if (fd == NULL) + return NULL; + fd->fd_write_failed = false; + return fd; } -- 1.8.3.1