Whamcloud - gitweb
LU-2753 llite: check alloc in ll_file_data_get, ll_dir_ioctl
authorJohn L. Hammond <john.hammond@intel.com>
Tue, 26 Mar 2013 17:21:57 +0000 (12:21 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 31 May 2013 16:34:27 +0000 (12:34 -0400)
In ll_file_data_get() and ll_dir_ioctl() return error on failed
allocations.

Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: I122db2cede770261d75af209e92aa60d86ea85f2
Reviewed-on: http://review.whamcloud.com/5845
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Sebastien Buisson <sebastien.buisson@bull.net>
lustre/llite/dir.c
lustre/llite/file.c

index a3086d0..febf6ea 100644 (file)
@@ -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:
index 05df5d8..ce4259d 100644 (file)
@@ -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;
 }