From ccc5d3f7adceda4d8cf41f04fe02d5cfe376befd Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Tue, 3 Dec 2013 14:10:00 -0500 Subject: [PATCH] Linux 3.13: Check return value from bdi_init The use of the bdi_init function now gets a warning because the return value is unused and the function is now defined with the warn_unused_result attribute. Assign and check the return value. Change-Id: I78ae4ea356aef8c9dabe75179ad67db1fd64c28b Reviewed-on: http://gerrit.openafs.org/10530 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear --- src/afs/LINUX/osi_vfsops.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/afs/LINUX/osi_vfsops.c b/src/afs/LINUX/osi_vfsops.c index 6beaf8d..cad22a1 100644 --- a/src/afs/LINUX/osi_vfsops.c +++ b/src/afs/LINUX/osi_vfsops.c @@ -87,6 +87,9 @@ int afs_fill_super(struct super_block *sb, void *data, int silent) { int code = 0; +#if defined(HAVE_LINUX_BDI_INIT) + int bdi_init_done = 0; +#endif AFS_GLOCK(); if (afs_was_mounted) { @@ -114,7 +117,10 @@ afs_fill_super(struct super_block *sb, void *data, int silent) /* used for inodes backing_dev_info field, also */ afs_backing_dev_info = kzalloc(sizeof(struct backing_dev_info), GFP_NOFS); #if defined(HAVE_LINUX_BDI_INIT) - bdi_init(afs_backing_dev_info); + code = bdi_init(afs_backing_dev_info); + if (code) + goto out; + bdi_init_done = 1; #endif #if defined(STRUCT_BACKING_DEV_INFO_HAS_NAME) afs_backing_dev_info->name = "openafs"; @@ -143,11 +149,13 @@ afs_fill_super(struct super_block *sb, void *data, int silent) #endif #endif code = afs_root(sb); +out: if (code) { afs_globalVFS = NULL; afs_FlushAllVCaches(); #if defined(HAVE_LINUX_BDI_INIT) - bdi_destroy(afs_backing_dev_info); + if (bdi_init_done) + bdi_destroy(afs_backing_dev_info); #endif kfree(afs_backing_dev_info); module_put(THIS_MODULE); -- 1.9.4