From 0bb171673e30fa3271b851f6274ca9cdb8f5e55f Mon Sep 17 00:00:00 2001 From: Dmitry Eremin Date: Mon, 28 Oct 2013 22:38:58 +0400 Subject: [PATCH] LU-4069 build: cleanup from GOTO(label, -ERRNO) Cleanup the code from GOTO(label, -ERRNO) and other bad GOTOs. Signed-off-by: Dmitry Eremin Change-Id: I58df89810c112a6856da83c56c9f29dc22ffdf99 Reviewed-on: http://review.whamcloud.com/8080 Reviewed-by: John L. Hammond Tested-by: Jenkins Reviewed-by: James Simmons Tested-by: Maloo Reviewed-by: Oleg Drokin --- lnet/klnds/gnilnd/gnilnd.c | 103 +++++++++++++--------------------------- lnet/klnds/gnilnd/gnilnd_proc.c | 41 +++++++--------- lustre/fid/lproc_fid.c | 4 +- lustre/ldlm/ldlm_extent.c | 2 +- lustre/ldlm/ldlm_flock.c | 4 +- lustre/ldlm/ldlm_inodebits.c | 4 +- lustre/ldlm/ldlm_lock.c | 10 ++-- lustre/ldlm/ldlm_plain.c | 4 +- lustre/llite/rw26.c | 2 +- lustre/mdd/mdd_orphans.c | 4 +- lustre/mdt/mdt_fs.c | 2 +- lustre/obdclass/genops.c | 12 ++--- lustre/obdclass/obd_config.c | 2 +- lustre/osd-zfs/osd_io.c | 8 ++-- lustre/ptlrpc/client.c | 5 +- lustre/ptlrpc/import.c | 2 +- lustre/quota/qmt_pool.c | 2 +- lustre/quota/qsd_request.c | 2 +- 18 files changed, 85 insertions(+), 128 deletions(-) diff --git a/lnet/klnds/gnilnd/gnilnd.c b/lnet/klnds/gnilnd/gnilnd.c index 92a139c..75f2259 100644 --- a/lnet/klnds/gnilnd/gnilnd.c +++ b/lnet/klnds/gnilnd/gnilnd.c @@ -199,8 +199,7 @@ kgnilnd_create_conn(kgn_conn_t **connp, kgn_device_t *dev) LIBCFS_ALLOC(conn->gnc_tx_ref_table, GNILND_MAX_MSG_ID * sizeof(void *)); if (conn->gnc_tx_ref_table == NULL) { CERROR("Can't allocate conn tx_ref_table\n"); - rc = -ENOMEM; - GOTO(failed, rc); + GOTO(failed, rc = -ENOMEM); } atomic_set(&conn->gnc_refcount, 1); @@ -231,8 +230,7 @@ kgnilnd_create_conn(kgn_conn_t **connp, kgn_device_t *dev) if (conn->gnc_cqid == 0) { CERROR("Could not allocate unique CQ ID for conn 0x%p\n", conn); - rc = -E2BIG; - GOTO(failed, rc); + GOTO(failed, rc = -E2BIG); } CDEBUG(D_NET, "alloc cqid %u for conn 0x%p\n", @@ -251,10 +249,8 @@ kgnilnd_create_conn(kgn_conn_t **connp, kgn_device_t *dev) rrc = kgnilnd_ep_create(dev->gnd_handle, dev->gnd_snd_fma_cqh, &conn->gnc_ephandle); mutex_unlock(&dev->gnd_cq_mutex); - if (rrc != GNI_RC_SUCCESS) { - rc = -ENETDOWN; - GOTO(failed, rc); - } + if (rrc != GNI_RC_SUCCESS) + GOTO(failed, rc = -ENETDOWN); CDEBUG(D_NET, "created conn 0x%p ep_hndl 0x%p\n", conn, conn->gnc_ephandle); @@ -1949,8 +1945,7 @@ kgnilnd_dev_init(kgn_device_t *dev) &dev->gnd_domain); if (rrc != GNI_RC_SUCCESS) { CERROR("Can't create CDM %d (%d)\n", dev->gnd_id, rrc); - rc = -ENODEV; - GOTO(failed, rc); + GOTO(failed, rc = -ENODEV); } rrc = kgnilnd_cdm_attach(dev->gnd_domain, dev->gnd_id, @@ -1958,17 +1953,14 @@ kgnilnd_dev_init(kgn_device_t *dev) if (rrc != GNI_RC_SUCCESS) { CERROR("Can't attach CDM to device %d (%d)\n", dev->gnd_id, rrc); - rc = -ENODEV; - GOTO(failed, rc); + GOTO(failed, rc = -ENODEV); } /* a bit gross, but not much we can do - Aries Sim doesn't have * hardcoded NIC/NID that we can use */ rc = kgnilnd_setup_nic_translation(dev->gnd_host_id); - if (rc != 0) { - rc = -ENODEV; - GOTO(failed, rc); - } + if (rc != 0) + GOTO(failed, rc = -ENODEV); /* only dev 0 gets the errors - no need to reset the stack twice * - this works because we have a single PTAG, if we had more @@ -1982,8 +1974,7 @@ kgnilnd_dev_init(kgn_device_t *dev) if (rrc != GNI_RC_SUCCESS) { CERROR("Can't subscribe for errors on device %d: rc %d\n", dev->gnd_id, rrc); - rc = -ENODEV; - GOTO(failed, rc); + GOTO(failed, rc = -ENODEV); } rc = kgnilnd_set_quiesce_callback(dev->gnd_handle, @@ -1991,8 +1982,7 @@ kgnilnd_dev_init(kgn_device_t *dev) if (rc != GNI_RC_SUCCESS) { CERROR("Can't subscribe for quiesce callback on device %d: rc %d\n", dev->gnd_id, rrc); - rc = -ENODEV; - GOTO(failed, rc); + GOTO(failed, rc = -ENODEV); } } @@ -2003,8 +1993,7 @@ kgnilnd_dev_init(kgn_device_t *dev) CERROR("couldn't translate host_id 0x%x to nid. rc %d\n", dev->gnd_host_id, rc); } - rc = -ESRCH; - GOTO(failed, rc); + GOTO(failed, rc = -ESRCH); } CDEBUG(D_NET, "NIC %x -> NID %d\n", dev->gnd_host_id, dev->gnd_nid); @@ -2014,8 +2003,7 @@ kgnilnd_dev_init(kgn_device_t *dev) if (rrc != GNI_RC_SUCCESS) { CERROR("Can't create rdma send cq size %u for device " "%d (%d)\n", cq_size, dev->gnd_id, rrc); - rc = -EINVAL; - GOTO(failed, rc); + GOTO(failed, rc = -EINVAL); } rrc = kgnilnd_cq_create(dev->gnd_handle, cq_size, @@ -2024,8 +2012,7 @@ kgnilnd_dev_init(kgn_device_t *dev) if (rrc != GNI_RC_SUCCESS) { CERROR("Can't create fma send cq size %u for device %d (%d)\n", cq_size, dev->gnd_id, rrc); - rc = -EINVAL; - GOTO(failed, rc); + GOTO(failed, rc = -EINVAL); } /* This one we size differently - overflows are possible and it needs to be @@ -2037,8 +2024,7 @@ kgnilnd_dev_init(kgn_device_t *dev) if (rrc != GNI_RC_SUCCESS) { CERROR("Can't create fma cq size %d for device %d (%d)\n", *kgnilnd_tunables.kgn_fma_cq_size, dev->gnd_id, rrc); - rc = -EINVAL; - GOTO(failed, rc); + GOTO(failed, rc = -EINVAL); } RETURN(0); @@ -2190,10 +2176,8 @@ int kgnilnd_base_startup(void) LIBCFS_ALLOC(dev->gnd_dgrams, sizeof(struct list_head) * *kgnilnd_tunables.kgn_peer_hash_size); - if (dev->gnd_dgrams == NULL) { - rc = -ENOMEM; - GOTO(failed, rc); - } + if (dev->gnd_dgrams == NULL) + GOTO(failed, rc = -ENOMEM); for (i = 0; i < *kgnilnd_tunables.kgn_peer_hash_size; i++) { INIT_LIST_HEAD(&dev->gnd_dgrams[i]); @@ -2235,10 +2219,8 @@ int kgnilnd_base_startup(void) LIBCFS_ALLOC(kgnilnd_data.kgn_peers, sizeof(struct list_head) * *kgnilnd_tunables.kgn_peer_hash_size); - if (kgnilnd_data.kgn_peers == NULL) { - rc = -ENOMEM; - GOTO(failed, rc); - } + if (kgnilnd_data.kgn_peers == NULL) + GOTO(failed, rc = -ENOMEM); for (i = 0; i < *kgnilnd_tunables.kgn_peer_hash_size; i++) { INIT_LIST_HEAD(&kgnilnd_data.kgn_peers[i]); @@ -2247,10 +2229,8 @@ int kgnilnd_base_startup(void) LIBCFS_ALLOC(kgnilnd_data.kgn_conns, sizeof(struct list_head) * *kgnilnd_tunables.kgn_peer_hash_size); - if (kgnilnd_data.kgn_conns == NULL) { - rc = -ENOMEM; - GOTO(failed, rc); - } + if (kgnilnd_data.kgn_conns == NULL) + GOTO(failed, rc = -ENOMEM); for (i = 0; i < *kgnilnd_tunables.kgn_peer_hash_size; i++) { INIT_LIST_HEAD(&kgnilnd_data.kgn_conns[i]); @@ -2259,10 +2239,8 @@ int kgnilnd_base_startup(void) LIBCFS_ALLOC(kgnilnd_data.kgn_nets, sizeof(struct list_head) * *kgnilnd_tunables.kgn_net_hash_size); - if (kgnilnd_data.kgn_nets == NULL) { - rc = -ENOMEM; - GOTO(failed, rc); - } + if (kgnilnd_data.kgn_nets == NULL) + GOTO(failed, rc = -ENOMEM); for (i = 0; i < *kgnilnd_tunables.kgn_net_hash_size; i++) { INIT_LIST_HEAD(&kgnilnd_data.kgn_nets[i]); @@ -2273,24 +2251,21 @@ int kgnilnd_base_startup(void) SLAB_HWCACHE_ALIGN, NULL); if (kgnilnd_data.kgn_mbox_cache == NULL) { CERROR("Can't create slab for physical mbox blocks\n"); - rc = -ENOMEM; - GOTO(failed, rc); + GOTO(failed, rc = -ENOMEM); } kgnilnd_data.kgn_rx_cache = kmem_cache_create("kgn_rx_t", sizeof(kgn_rx_t), 0, 0, NULL); if (kgnilnd_data.kgn_rx_cache == NULL) { CERROR("Can't create slab for kgn_rx_t descriptors\n"); - rc = -ENOMEM; - GOTO(failed, rc); + GOTO(failed, rc = -ENOMEM); } kgnilnd_data.kgn_tx_cache = kmem_cache_create("kgn_tx_t", sizeof(kgn_tx_t), 0, 0, NULL); if (kgnilnd_data.kgn_tx_cache == NULL) { CERROR("Can't create slab for kgn_tx_t\n"); - rc = -ENOMEM; - GOTO(failed, rc); + GOTO(failed, rc = -ENOMEM); } kgnilnd_data.kgn_tx_phys_cache = @@ -2299,16 +2274,14 @@ int kgnilnd_base_startup(void) 0, 0, NULL); if (kgnilnd_data.kgn_tx_phys_cache == NULL) { CERROR("Can't create slab for kgn_tx_phys\n"); - rc = -ENOMEM; - GOTO(failed, rc); + GOTO(failed, rc = -ENOMEM); } kgnilnd_data.kgn_dgram_cache = kmem_cache_create("kgn_dgram_t", sizeof(kgn_dgram_t), 0, 0, NULL); if (kgnilnd_data.kgn_dgram_cache == NULL) { CERROR("Can't create slab for outgoing datagrams\n"); - rc = -ENOMEM; - GOTO(failed, rc); + GOTO(failed, rc = -ENOMEM); } /* allocate a MAX_IOV array of page pointers for each cpu */ @@ -2316,8 +2289,7 @@ int kgnilnd_base_startup(void) GFP_KERNEL); if (kgnilnd_data.kgn_cksum_map_pages == NULL) { CERROR("Can't allocate vmap cksum pages\n"); - rc = -ENOMEM; - GOTO(failed, rc); + GOTO(failed, rc = -ENOMEM); } kgnilnd_data.kgn_cksum_npages = num_possible_cpus(); memset(kgnilnd_data.kgn_cksum_map_pages, 0, @@ -2328,8 +2300,7 @@ int kgnilnd_base_startup(void) GFP_KERNEL); if (kgnilnd_data.kgn_cksum_map_pages[i] == NULL) { CERROR("Can't allocate vmap cksum pages for cpu %d\n", i); - rc = -ENOMEM; - GOTO(failed, rc); + GOTO(failed, rc = -ENOMEM); } } @@ -2345,16 +2316,14 @@ int kgnilnd_base_startup(void) kgnilnd_data.kgn_ndevs++; rc = kgnilnd_allocate_phys_fmablk(dev); - if (rc) { + if (rc) GOTO(failed, rc); - } } } if (kgnilnd_data.kgn_ndevs == 0) { CERROR("Can't initialise any GNI devices\n"); - rc = -ENODEV; - GOTO(failed, rc); + GOTO(failed, rc = -ENODEV); } rc = kgnilnd_thread_start(kgnilnd_reaper, NULL, "kgnilnd_rpr", 0); @@ -2613,9 +2582,8 @@ kgnilnd_startup(lnet_ni_t *ni) LIBCFS_ALLOC(net, sizeof(*net)); if (net == NULL) { CERROR("could not allocate net for new interface instance\n"); - rc = -ENOMEM; /* no need to cleanup the CDM... */ - GOTO(failed, rc); + GOTO(failed, rc = -ENOMEM); } INIT_LIST_HEAD(&net->gnn_list); ni->ni_data = net; @@ -2639,8 +2607,7 @@ kgnilnd_startup(lnet_ni_t *ni) timeout); ni->ni_data = NULL; LIBCFS_FREE(net, sizeof(*net)); - rc = -EINVAL; - GOTO(failed, rc); + GOTO(failed, rc = -EINVAL); } else ni->ni_peertimeout = timeout; @@ -2705,8 +2672,7 @@ kgnilnd_shutdown(lnet_ni_t *ni) if (net == NULL) { CERROR("got NULL net for ni %p\n", ni); - rc = -EINVAL; - GOTO(out, rc); + GOTO(out, rc = -EINVAL); } LASSERTF(ni == net->gnn_ni, @@ -2785,7 +2751,6 @@ out: up(&kgnilnd_data.kgn_quiesce_sem); EXIT; - return; } void __exit diff --git a/lnet/klnds/gnilnd/gnilnd_proc.c b/lnet/klnds/gnilnd/gnilnd_proc.c index 38ef64a..e20fde9 100644 --- a/lnet/klnds/gnilnd/gnilnd_proc.c +++ b/lnet/klnds/gnilnd/gnilnd_proc.c @@ -39,6 +39,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob) lnet_kiov_t *src, *dest; struct timespec begin, end, diff; int niov; + int rc = 0; int i = 0, j = 0, n; __u16 cksum, cksum2; __u64 mbytes; @@ -48,7 +49,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob) if (src == NULL || dest == NULL) { CERROR("couldn't allocate iovs\n"); - GOTO(unwind, -ENOMEM); + GOTO(unwind, rc = -ENOMEM); } for (i = 0; i < LNET_MAX_IOV; i++) { @@ -58,7 +59,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob) if (src[i].kiov_page == NULL) { CERROR("couldn't allocate page %d\n", i); - GOTO(unwind, -ENOMEM); + GOTO(unwind, rc = -ENOMEM); } dest[i].kiov_offset = 0; @@ -67,7 +68,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob) if (dest[i].kiov_page == NULL) { CERROR("couldn't allocate page %d\n", i); - GOTO(unwind, -ENOMEM); + GOTO(unwind, rc = -ENOMEM); } } @@ -76,7 +77,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob) if (niov > LNET_MAX_IOV) { CERROR("bytes %d too large, requires niov %d > %d\n", nob, niov, LNET_MAX_IOV); - GOTO(unwind, -E2BIG); + GOTO(unwind, rc = -E2BIG); } /* setup real data */ @@ -120,7 +121,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob) if (cksum != cksum2) { CERROR("case %d loop %d different checksums %x expected %x\n", j, n, cksum2, cksum); - GOTO(unwind, -ENOKEY); + GOTO(unwind, rc = -ENOKEY); } } @@ -148,7 +149,7 @@ unwind: LIBCFS_FREE(src, LNET_MAX_IOV * sizeof(lnet_kiov_t)); if (dest != NULL) LIBCFS_FREE(dest, LNET_MAX_IOV * sizeof(lnet_kiov_t)); - return 0; + return rc; } static int @@ -158,17 +159,18 @@ kgnilnd_proc_cksum_test_write(struct file *file, const char *ubuffer, char dummy[256 + 1] = { '\0' }; int testno, nloops, nbytes; int rc; + ENTRY; if (kgnilnd_data.kgn_init < GNILND_INIT_ALL) { CERROR("can't run cksum test, kgnilnd is not initialized yet\n"); - return -ENOSYS; + RETURN(-ENOSYS); } if (count >= sizeof(dummy) || count == 0) - return -EINVAL; + RETURN(-EINVAL); if (copy_from_user(dummy, ubuffer, count)) - return -EFAULT; + RETURN(-EFAULT); if (sscanf(dummy, "%d:%d:%d", &testno, &nloops, &nbytes) == 3) { rc = _kgnilnd_proc_run_cksum_test(testno, nloops, nbytes); @@ -1292,8 +1294,7 @@ kgnilnd_proc_init(void) pde = create_proc_entry(GNILND_PROC_CKSUM_TEST, 0200, kgn_proc_root); if (pde == NULL) { CERROR("couldn't create proc entry %s\n", GNILND_PROC_CKSUM_TEST); - rc = -ENOENT; - GOTO(remove_dir, rc); + GOTO(remove_dir, rc = -ENOENT); } pde->data = NULL; @@ -1303,8 +1304,7 @@ kgnilnd_proc_init(void) pde = create_proc_entry(GNILND_PROC_STATS, 0644, kgn_proc_root); if (pde == NULL) { CERROR("couldn't create proc entry %s\n", GNILND_PROC_STATS); - rc = -ENOENT; - GOTO(remove_test, rc); + GOTO(remove_test, rc = -ENOENT); } pde->data = NULL; @@ -1315,8 +1315,7 @@ kgnilnd_proc_init(void) pde = create_proc_entry(GNILND_PROC_MDD, 0444, kgn_proc_root); if (pde == NULL) { CERROR("couldn't create proc entry %s\n", GNILND_PROC_MDD); - rc = -ENOENT; - GOTO(remove_stats, rc); + GOTO(remove_stats, rc = -ENOENT); } pde->data = NULL; @@ -1326,8 +1325,7 @@ kgnilnd_proc_init(void) pde = create_proc_entry(GNILND_PROC_SMSG, 0444, kgn_proc_root); if (pde == NULL) { CERROR("couldn't create proc entry %s\n", GNILND_PROC_SMSG); - rc = -ENOENT; - GOTO(remove_mdd, rc); + GOTO(remove_mdd, rc = -ENOENT); } pde->data = NULL; @@ -1337,8 +1335,7 @@ kgnilnd_proc_init(void) pde = create_proc_entry(GNILND_PROC_CONN, 0444, kgn_proc_root); if (pde == NULL) { CERROR("couldn't create proc entry %s\n", GNILND_PROC_CONN); - rc = -ENOENT; - GOTO(remove_smsg, rc); + GOTO(remove_smsg, rc = -ENOENT); } pde->data = NULL; @@ -1348,8 +1345,7 @@ kgnilnd_proc_init(void) pde = create_proc_entry(GNILND_PROC_PEER_CONNS, 0644, kgn_proc_root); if (pde == NULL) { CERROR("couldn't create proc entry %s\n", GNILND_PROC_PEER_CONNS); - rc = -ENOENT; - GOTO(remove_conn, rc); + GOTO(remove_conn, rc = -ENOENT); } pde->data = NULL; @@ -1360,8 +1356,7 @@ kgnilnd_proc_init(void) pde = create_proc_entry(GNILND_PROC_PEER, 0444, kgn_proc_root); if (pde == NULL) { CERROR("couldn't create proc entry %s\n", GNILND_PROC_PEER); - rc = -ENOENT; - GOTO(remove_pc, rc); + GOTO(remove_pc, rc = -ENOENT); } pde->data = NULL; diff --git a/lustre/fid/lproc_fid.c b/lustre/fid/lproc_fid.c index 676e0f0..1b6e6a8 100644 --- a/lustre/fid/lproc_fid.c +++ b/lustre/fid/lproc_fid.c @@ -188,7 +188,7 @@ seq_server_proc_write_width(struct file *file, const char *buffer, rc = lprocfs_write_helper(buffer, count, &val); if (rc != 0) { CERROR("%s: invalid width.\n", seq->lss_name); - GOTO(out_unlock, rc); + GOTO(out_unlock, count = rc); } seq->lss_width = val; @@ -361,7 +361,7 @@ static int fldb_seq_open(struct inode *inode, struct file *file) LPROCFS_ENTRY_CHECK(dp); rc = seq_open(file, &fldb_sops); if (rc) - GOTO(out, rc); + return rc; obj = fld->lsf_obj; if (obj == NULL) { diff --git a/lustre/ldlm/ldlm_extent.c b/lustre/ldlm/ldlm_extent.c index ab457c7..b703235 100644 --- a/lustre/ldlm/ldlm_extent.c +++ b/lustre/ldlm/ldlm_extent.c @@ -784,7 +784,7 @@ int ldlm_process_extent_lock(struct ldlm_lock *lock, __u64 *flags, GOTO(out, rc = 0); } - GOTO(restart, -ERESTART); + GOTO(restart, rc); } /* this way we force client to wait for the lock diff --git a/lustre/ldlm/ldlm_flock.c b/lustre/ldlm/ldlm_flock.c index 8e4d453..26a1bf4 100644 --- a/lustre/ldlm/ldlm_flock.c +++ b/lustre/ldlm/ldlm_flock.c @@ -600,8 +600,8 @@ restart: rc = ldlm_run_ast_work(ns, &rpc_list, LDLM_WORK_CP_AST); lock_res_and_lock(req); - if (rc == -ERESTART) - GOTO(restart, -ERESTART); + if (rc == -ERESTART) + GOTO(restart, rc); } } else { LASSERT(req->l_completion_ast); diff --git a/lustre/ldlm/ldlm_inodebits.c b/lustre/ldlm/ldlm_inodebits.c index e306115..b1dc03d 100644 --- a/lustre/ldlm/ldlm_inodebits.c +++ b/lustre/ldlm/ldlm_inodebits.c @@ -227,8 +227,8 @@ int ldlm_process_inodebits_lock(struct ldlm_lock *lock, __u64 *flags, rc = ldlm_run_ast_work(ldlm_res_to_ns(res), &rpc_list, LDLM_WORK_BL_AST); lock_res(res); - if (rc == -ERESTART) - GOTO(restart, -ERESTART); + if (rc == -ERESTART) + GOTO(restart, rc); *flags |= LDLM_FL_BLOCK_GRANTED; } else { ldlm_resource_unlink_lock(lock); diff --git a/lustre/ldlm/ldlm_lock.c b/lustre/ldlm/ldlm_lock.c index 760d2c2..0c66b7d 100644 --- a/lustre/ldlm/ldlm_lock.c +++ b/lustre/ldlm/ldlm_lock.c @@ -1703,7 +1703,7 @@ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns, * need to do anything else. */ *flags &= ~(LDLM_FL_BLOCK_GRANTED | LDLM_FL_BLOCK_CONV | LDLM_FL_BLOCK_WAIT); - GOTO(out, ELDLM_OK); + GOTO(out, rc = ELDLM_OK); } ldlm_resource_unlink_lock(lock); @@ -1741,18 +1741,18 @@ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns, ldlm_resource_add_lock(res, &res->lr_waiting, lock); else ldlm_grant_lock(lock, NULL); - GOTO(out, ELDLM_OK); + GOTO(out, rc = ELDLM_OK); #ifdef HAVE_SERVER_SUPPORT } else if (*flags & LDLM_FL_REPLAY) { if (*flags & LDLM_FL_BLOCK_CONV) { ldlm_resource_add_lock(res, &res->lr_converting, lock); - GOTO(out, ELDLM_OK); + GOTO(out, rc = ELDLM_OK); } else if (*flags & LDLM_FL_BLOCK_WAIT) { ldlm_resource_add_lock(res, &res->lr_waiting, lock); - GOTO(out, ELDLM_OK); + GOTO(out, rc = ELDLM_OK); } else if (*flags & LDLM_FL_BLOCK_GRANTED) { ldlm_grant_lock(lock, NULL); - GOTO(out, ELDLM_OK); + GOTO(out, rc = ELDLM_OK); } /* If no flags, fall through to normal enqueue path. */ } diff --git a/lustre/ldlm/ldlm_plain.c b/lustre/ldlm/ldlm_plain.c index 32a3f04..7c44f72 100644 --- a/lustre/ldlm/ldlm_plain.c +++ b/lustre/ldlm/ldlm_plain.c @@ -183,8 +183,8 @@ int ldlm_process_plain_lock(struct ldlm_lock *lock, __u64 *flags, rc = ldlm_run_ast_work(ldlm_res_to_ns(res), &rpc_list, LDLM_WORK_BL_AST); lock_res(res); - if (rc == -ERESTART) - GOTO(restart, -ERESTART); + if (rc == -ERESTART) + GOTO(restart, rc); *flags |= LDLM_FL_BLOCK_GRANTED; } else { ldlm_resource_unlink_lock(lock); diff --git a/lustre/llite/rw26.c b/lustre/llite/rw26.c index 18098dc..33c5996 100644 --- a/lustre/llite/rw26.c +++ b/lustre/llite/rw26.c @@ -509,7 +509,7 @@ out: } cl_env_put(env, &refcheck); - RETURN(tot_bytes ? : result); + RETURN(tot_bytes ? tot_bytes : result); } static int ll_write_begin(struct file *file, struct address_space *mapping, diff --git a/lustre/mdd/mdd_orphans.c b/lustre/mdd/mdd_orphans.c index 9aa132b..6e6b39f 100644 --- a/lustre/mdd/mdd_orphans.c +++ b/lustre/mdd/mdd_orphans.c @@ -215,7 +215,7 @@ static int orph_index_insert(const struct lu_env *env, mdo_ref_add(env, obj, th); if (!S_ISDIR(mdd_object_type(obj))) - goto out; + GOTO(out, rc = 0); mdo_ref_add(env, obj, th); mdd_orphan_ref_add(env, mdd, th); @@ -223,7 +223,7 @@ static int orph_index_insert(const struct lu_env *env, /* try best to fixup directory, dont return errors * from here */ if (!dt_try_as_dir(env, next)) - goto out; + GOTO(out, rc = 0); next->do_index_ops->dio_delete(env, next, (const struct dt_key *)dotdot, th, BYPASS_CAPA); diff --git a/lustre/mdt/mdt_fs.c b/lustre/mdt/mdt_fs.c index c3b43b3..8621475 100644 --- a/lustre/mdt/mdt_fs.c +++ b/lustre/mdt/mdt_fs.c @@ -66,7 +66,7 @@ int mdt_export_stats_init(struct obd_device *obd, tmp->nid_stats = lprocfs_alloc_stats(LPROC_MDT_LAST, LPROCFS_STATS_FLAG_NOPERCPU); if (tmp->nid_stats == NULL) - return -ENOMEM; + RETURN(-ENOMEM); mdt_stats_counter_init(tmp->nid_stats); rc = lprocfs_register_stats(tmp->nid_proc, "stats", tmp->nid_stats); diff --git a/lustre/obdclass/genops.c b/lustre/obdclass/genops.c index b430c24..9d577f9 100644 --- a/lustre/obdclass/genops.c +++ b/lustre/obdclass/genops.c @@ -689,6 +689,7 @@ void obd_cleanup_caches(void) int obd_init_caches(void) { + int rc; ENTRY; LASSERT(obd_device_cachep == NULL); @@ -696,32 +697,31 @@ int obd_init_caches(void) sizeof(struct obd_device), 0, 0, NULL); if (!obd_device_cachep) - GOTO(out, -ENOMEM); + GOTO(out, rc = -ENOMEM); LASSERT(obdo_cachep == NULL); obdo_cachep = kmem_cache_create("ll_obdo_cache", sizeof(struct obdo), 0, 0, NULL); if (!obdo_cachep) - GOTO(out, -ENOMEM); + GOTO(out, rc = -ENOMEM); LASSERT(import_cachep == NULL); import_cachep = kmem_cache_create("ll_import_cache", sizeof(struct obd_import), 0, 0, NULL); if (!import_cachep) - GOTO(out, -ENOMEM); + GOTO(out, rc = -ENOMEM); LASSERT(capa_cachep == NULL); capa_cachep = kmem_cache_create("capa_cache", sizeof(struct obd_capa), 0, 0, NULL); if (!capa_cachep) - GOTO(out, -ENOMEM); + GOTO(out, rc = -ENOMEM); RETURN(0); out: obd_cleanup_caches(); - RETURN(-ENOMEM); - + RETURN(rc); } /* map connection to client */ diff --git a/lustre/obdclass/obd_config.c b/lustre/obdclass/obd_config.c index 806acfc..47f42b1 100644 --- a/lustre/obdclass/obd_config.c +++ b/lustre/obdclass/obd_config.c @@ -1208,7 +1208,7 @@ int class_process_config(struct lustre_cfg *lcfg) } case LCFG_SET_PARAM: { err = process_param2_config(lcfg); - GOTO(out, 0); + GOTO(out, err = 0); } } /* Commands that require a device */ diff --git a/lustre/osd-zfs/osd_io.c b/lustre/osd-zfs/osd_io.c index c041c8e..3fe29ef 100644 --- a/lustre/osd-zfs/osd_io.c +++ b/lustre/osd-zfs/osd_io.c @@ -328,7 +328,7 @@ static int osd_bufs_get_write(const struct lu_env *env, struct osd_object *obj, { struct osd_device *osd = osd_obj2dev(obj); int plen, off_in_block, sz_in_block; - int i = 0, npages = 0; + int rc, i = 0, npages = 0; arc_buf_t *abuf; uint32_t bs; uint64_t dummy; @@ -351,7 +351,7 @@ static int osd_bufs_get_write(const struct lu_env *env, struct osd_object *obj, abuf = dmu_request_arcbuf(obj->oo_db, bs); if (unlikely(abuf == NULL)) - GOTO(out_err, -ENOMEM); + GOTO(out_err, rc = -ENOMEM); cfs_atomic_inc(&osd->od_zerocopy_loan); @@ -402,7 +402,7 @@ static int osd_bufs_get_write(const struct lu_env *env, struct osd_object *obj, lnb[i].page = alloc_page(OSD_GFP_IO); if (unlikely(lnb[i].page == NULL)) - GOTO(out_err, -ENOMEM); + GOTO(out_err, rc = -ENOMEM); LASSERT(lnb[i].page->mapping == NULL); lnb[i].page->mapping = (void *)obj; @@ -424,7 +424,7 @@ static int osd_bufs_get_write(const struct lu_env *env, struct osd_object *obj, out_err: osd_bufs_put(env, &obj->oo_dt, lnb, npages); - RETURN(-ENOMEM); + RETURN(rc); } static int osd_bufs_get(const struct lu_env *env, struct dt_object *dt, diff --git a/lustre/ptlrpc/client.c b/lustre/ptlrpc/client.c index 2cc2c95..e71dabb 100644 --- a/lustre/ptlrpc/client.c +++ b/lustre/ptlrpc/client.c @@ -2478,8 +2478,7 @@ void ptlrpc_free_committed(struct obd_import *imp) imp->imp_generation == imp->imp_last_generation_checked) { CDEBUG(D_INFO, "%s: skip recheck: last_committed "LPU64"\n", imp->imp_obd->obd_name, imp->imp_peer_committed_transno); - EXIT; - return; + RETURN_EXIT; } CDEBUG(D_RPCTRACE, "%s: committing for last_committed "LPU64" gen %d\n", imp->imp_obd->obd_name, imp->imp_peer_committed_transno, @@ -2538,14 +2537,12 @@ free_req: } out: EXIT; - return; } void ptlrpc_cleanup_client(struct obd_import *imp) { ENTRY; EXIT; - return; } EXPORT_SYMBOL(ptlrpc_cleanup_client); diff --git a/lustre/ptlrpc/import.c b/lustre/ptlrpc/import.c index 495721a..1076b96 100644 --- a/lustre/ptlrpc/import.c +++ b/lustre/ptlrpc/import.c @@ -1478,7 +1478,7 @@ int ptlrpc_disconnect_import(struct obd_import *imp, int noclose) spin_lock(&imp->imp_lock); if (imp->imp_state != LUSTRE_IMP_FULL) - GOTO(out, 0); + GOTO(out, rc); spin_unlock(&imp->imp_lock); diff --git a/lustre/quota/qmt_pool.c b/lustre/quota/qmt_pool.c index 04ffa91..92f6d70 100644 --- a/lustre/quota/qmt_pool.c +++ b/lustre/quota/qmt_pool.c @@ -680,7 +680,7 @@ struct lquota_entry *qmt_pool_lqe_lookup(const struct lu_env *env, * entry since we keep a reference on ID 0 all the time */ lqe = pool->qpi_grace_lqe[qtype]; lqe_getref(lqe); - GOTO(out, 0); + GOTO(out, lqe); } /* now that we have the pool, let's look-up the quota entry in the diff --git a/lustre/quota/qsd_request.c b/lustre/quota/qsd_request.c index e4851e1..ee8380a 100644 --- a/lustre/quota/qsd_request.c +++ b/lustre/quota/qsd_request.c @@ -287,7 +287,7 @@ int qsd_intent_lock(const struct lu_env *env, struct obd_export *exp, lock = ldlm_handle2lock(&qti->qti_lockh); if (lock == NULL) { ptlrpc_req_finished(req); - GOTO(out, -ENOLCK); + GOTO(out, rc = -ENOLCK); } lu_ref_add(&qqi->qqi_reference, "glb_lock", lock); LDLM_LOCK_PUT(lock); -- 1.8.3.1