diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-03-03 15:04:15 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-03-03 15:05:56 -0500 |
commit | 8aa0a410af8011d557877e558f9ff17c082c6840 (patch) | |
tree | e347920bcaba78f6af0fecc626c1842f85aeeb83 /net | |
parent | 54b50af089552bae368502e35dead67e81129b8d (diff) | |
parent | abe9a6d57b4544ac208401f9c0a4262814db2be4 (diff) | |
download | linux-3.10-8aa0a410af8011d557877e558f9ff17c082c6840.tar.gz linux-3.10-8aa0a410af8011d557877e558f9ff17c082c6840.tar.bz2 linux-3.10-8aa0a410af8011d557877e558f9ff17c082c6840.zip |
Merge commit 'nfs-for-3.3-4' into nfs-for-next
Conflicts:
fs/nfs/nfs4proc.c
Back-merge of the upstream kernel in order to fix a conflict with the
slotid type conversion and implementation id patches...
Diffstat (limited to 'net')
-rw-r--r-- | net/ceph/ceph_common.c | 2 | ||||
-rw-r--r-- | net/ceph/mon_client.c | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/net/ceph/ceph_common.c b/net/ceph/ceph_common.c index 97f70e50ad3..761ad9d6cc3 100644 --- a/net/ceph/ceph_common.c +++ b/net/ceph/ceph_common.c @@ -85,8 +85,6 @@ int ceph_check_fsid(struct ceph_client *client, struct ceph_fsid *fsid) } else { pr_info("client%lld fsid %pU\n", ceph_client_id(client), fsid); memcpy(&client->fsid, fsid, sizeof(*fsid)); - ceph_debugfs_client_init(client); - client->have_fsid = true; } return 0; } diff --git a/net/ceph/mon_client.c b/net/ceph/mon_client.c index 0b62deae42b..1845cde2622 100644 --- a/net/ceph/mon_client.c +++ b/net/ceph/mon_client.c @@ -8,8 +8,8 @@ #include <linux/ceph/mon_client.h> #include <linux/ceph/libceph.h> +#include <linux/ceph/debugfs.h> #include <linux/ceph/decode.h> - #include <linux/ceph/auth.h> /* @@ -340,8 +340,19 @@ static void ceph_monc_handle_map(struct ceph_mon_client *monc, client->monc.monmap = monmap; kfree(old); + if (!client->have_fsid) { + client->have_fsid = true; + mutex_unlock(&monc->mutex); + /* + * do debugfs initialization without mutex to avoid + * creating a locking dependency + */ + ceph_debugfs_client_init(client); + goto out_unlocked; + } out: mutex_unlock(&monc->mutex); +out_unlocked: wake_up_all(&client->auth_wq); } |