Skip to content

Commit

Permalink
[XFS] allow xfs_args_allocate to fail
Browse files Browse the repository at this point in the history
Switch xfs_args_allocate to kzalloc and handle failures.

SGI-PV: 981951
SGI-Modid: xfs-linux-melb:xfs-kern:31195a

Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
  • Loading branch information
Christoph Hellwig authored and Niv Sardi committed Jul 28, 2008
1 parent e34b562 commit bdd907b
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions fs/xfs/linux-2.6/xfs_super.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,10 @@ xfs_args_allocate(
{
struct xfs_mount_args *args;

args = kmem_zalloc(sizeof(struct xfs_mount_args), KM_SLEEP);
args = kzalloc(sizeof(struct xfs_mount_args), GFP_KERNEL);
if (!args)
return NULL;

args->logbufs = args->logbufsize = -1;
strncpy(args->fsname, sb->s_id, MAXNAMELEN);

Expand Down Expand Up @@ -1396,9 +1399,13 @@ xfs_fs_remount(
char *options)
{
struct xfs_mount *mp = XFS_M(sb);
struct xfs_mount_args *args = xfs_args_allocate(sb, 0);
struct xfs_mount_args *args;
int error;

args = xfs_args_allocate(sb, 0);
if (!args)
return -ENOMEM;

error = xfs_parseargs(mp, options, args, 1);
if (error)
goto out_free_args;
Expand All @@ -1420,7 +1427,7 @@ xfs_fs_remount(
}

out_free_args:
kmem_free(args);
kfree(args);
return -error;
}

Expand Down Expand Up @@ -1725,9 +1732,13 @@ xfs_fs_fill_super(
{
struct inode *root;
struct xfs_mount *mp = NULL;
struct xfs_mount_args *args = xfs_args_allocate(sb, silent);
struct xfs_mount_args *args;
int flags = 0, error;

args = xfs_args_allocate(sb, silent);
if (!args)
return -ENOMEM;

mp = xfs_mount_init();

INIT_LIST_HEAD(&mp->m_sync_list);
Expand Down Expand Up @@ -1826,7 +1837,7 @@ xfs_fs_fill_super(

xfs_itrace_exit(XFS_I(sb->s_root->d_inode));

kmem_free(args);
kfree(args);
return 0;

error2:
Expand Down Expand Up @@ -1874,7 +1885,7 @@ xfs_fs_fill_super(
kmem_free(mp);

fail_vfsop:
kmem_free(args);
kfree(args);
return -error;
}

Expand Down

0 comments on commit bdd907b

Please sign in to comment.