summaryrefslogtreecommitdiffstats
path: root/fs/ceph/mds_client.h
diff options
context:
space:
mode:
authorYan, Zheng2017-09-11 06:10:08 +0200
committerIlya Dryomov2017-09-19 21:04:52 +0200
commit717e6f2893eb35ce6728c3cacdc297b78d371b31 (patch)
treefa76387b54e5903ff8fba0f5cfdebc58e24b125a /fs/ceph/mds_client.h
parentlibceph: don't allow bidirectional swap of pg-upmap-items (diff)
downloadkernel-qcow2-linux-717e6f2893eb35ce6728c3cacdc297b78d371b31.tar.gz
kernel-qcow2-linux-717e6f2893eb35ce6728c3cacdc297b78d371b31.tar.xz
kernel-qcow2-linux-717e6f2893eb35ce6728c3cacdc297b78d371b31.zip
ceph: avoid panic in create_session_open_msg() if utsname() returns NULL
utsname() can return NULL while process is exiting. Kernel releases file locks during process exits. We send request to mds when releasing file lock. So it's possible that we open mds session while process is exiting. utsname() is called in create_session_open_msg(). Link: http://tracker.ceph.com/issues/21275 Signed-off-by: "Yan, Zheng" <zyan@redhat.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> [idryomov@gmail.com: drop utsname.h include from mds_client.c] Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/mds_client.h')
-rw-r--r--fs/ceph/mds_client.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ceph/mds_client.h b/fs/ceph/mds_client.h
index db57ae98ed34..636d6b2ec49c 100644
--- a/fs/ceph/mds_client.h
+++ b/fs/ceph/mds_client.h
@@ -8,6 +8,7 @@
#include <linux/rbtree.h>
#include <linux/spinlock.h>
#include <linux/refcount.h>
+#include <linux/utsname.h>
#include <linux/ceph/types.h>
#include <linux/ceph/messenger.h>
@@ -368,6 +369,8 @@ struct ceph_mds_client {
struct rw_semaphore pool_perm_rwsem;
struct rb_root pool_perm_tree;
+
+ char nodename[__NEW_UTS_LEN + 1];
};
extern const char *ceph_mds_op_name(int op);