Hi Chuck, FYI, there are new sparse warnings show up in tree: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git nfs-for-next head: 2afdfa5a846246de50e1881f71ba5c0aac0b415f commit: 05f4c350ee02e9461c6ae3a880ea326a06835e37 [69/83] NFS: Discover NFSv4 server trunking when mounting + fs/nfs/nfs4client.c:437:9: sparse: context imbalance in 'nfs41_walk_client_list' - different lock contexts for basic block vim +437 fs/nfs/nfs4client.c 05f4c350 (Chuck Lever 2012-09-14 415) /** 05f4c350 (Chuck Lever 2012-09-14 416) * nfs41_walk_client_list - Find nfs_client that matches a client/server owner 05f4c350 (Chuck Lever 2012-09-14 417) * 05f4c350 (Chuck Lever 2012-09-14 418) * @new: nfs_client with client ID to test 05f4c350 (Chuck Lever 2012-09-14 419) * @result: OUT: found nfs_client, or new 05f4c350 (Chuck Lever 2012-09-14 420) * @cred: credential to use for trunking test 05f4c350 (Chuck Lever 2012-09-14 421) * 05f4c350 (Chuck Lever 2012-09-14 422) * Returns zero, a negative errno, or a negative NFS4ERR status. 05f4c350 (Chuck Lever 2012-09-14 423) * If zero is returned, an nfs_client pointer is planted in "result." 05f4c350 (Chuck Lever 2012-09-14 424) * 05f4c350 (Chuck Lever 2012-09-14 425) * NB: nfs41_walk_client_list() relies on the new nfs_client being 05f4c350 (Chuck Lever 2012-09-14 426) * the last nfs_client on the list. 05f4c350 (Chuck Lever 2012-09-14 427) */ 05f4c350 (Chuck Lever 2012-09-14 428) int nfs41_walk_client_list(struct nfs_client *new, 05f4c350 (Chuck Lever 2012-09-14 429) struct nfs_client **result, 05f4c350 (Chuck Lever 2012-09-14 430) struct rpc_cred *cred) 05f4c350 (Chuck Lever 2012-09-14 431) { 05f4c350 (Chuck Lever 2012-09-14 432) struct nfs_net *nn = net_generic(new->cl_net, nfs_net_id); 05f4c350 (Chuck Lever 2012-09-14 433) struct nfs_client *pos, *n, *prev = NULL; 05f4c350 (Chuck Lever 2012-09-14 434) int error; 05f4c350 (Chuck Lever 2012-09-14 435) 05f4c350 (Chuck Lever 2012-09-14 436) spin_lock(&nn->nfs_client_lock); 05f4c350 (Chuck Lever 2012-09-14 @437) list_for_each_entry_safe(pos, n, &nn->nfs_client_list, cl_share_link) { 05f4c350 (Chuck Lever 2012-09-14 438) /* If "pos" isn't marked ready, we can't trust the 05f4c350 (Chuck Lever 2012-09-14 439) * remaining fields in "pos", especially the client 05f4c350 (Chuck Lever 2012-09-14 440) * ID and serverowner fields. Wait for CREATE_SESSION 05f4c350 (Chuck Lever 2012-09-14 441) * to finish. */ 05f4c350 (Chuck Lever 2012-09-14 442) if (pos->cl_cons_state < NFS_CS_READY) { 05f4c350 (Chuck Lever 2012-09-14 443) atomic_inc(&pos->cl_count); 05f4c350 (Chuck Lever 2012-09-14 444) spin_unlock(&nn->nfs_client_lock); 05f4c350 (Chuck Lever 2012-09-14 445) 05f4c350 (Chuck Lever 2012-09-14 446) if (prev) 05f4c350 (Chuck Lever 2012-09-14 447) nfs_put_client(prev); 05f4c350 (Chuck Lever 2012-09-14 448) prev = pos; 05f4c350 (Chuck Lever 2012-09-14 449) 05f4c350 (Chuck Lever 2012-09-14 450) error = nfs_wait_client_init_complete(pos); 05f4c350 (Chuck Lever 2012-09-14 451) if (error < 0) { 05f4c350 (Chuck Lever 2012-09-14 452) nfs_put_client(pos); 05f4c350 (Chuck Lever 2012-09-14 453) continue; --- 0-DAY kernel build testing backend Open Source Technology Centre Fengguang Wu, Yuanhan Liu Intel Corporation