From 809fafb4f1a3e70fcc1aa818d1b0764e0dab86d4 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 6 Mar 2008 16:08:19 -0800 Subject: [PATCH] client: fixed multiple mounts --- src/TODO | 1 - src/kernel/client.c | 3 ++- src/kernel/inode.c | 8 +++----- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/TODO b/src/TODO index 5854cb352fd35..6ea9cc4a2bf5e 100644 --- a/src/TODO +++ b/src/TODO @@ -12,7 +12,6 @@ code cleanup kernel client - some bugs - - crash on umount with multiple mount points... - cleanup - roll open_root_inode into fill_trace? - proc.c diff --git a/src/kernel/client.c b/src/kernel/client.c index bf452ac258db7..2ead328615e21 100644 --- a/src/kernel/client.c +++ b/src/kernel/client.c @@ -68,7 +68,8 @@ static struct dentry *open_root_dentry(struct ceph_client *client, struct ceph_m err = ceph_mdsc_do_request(mdsc, req); if (err == 0) { root = req->r_last_dentry; - dout(30, "open_root_inode success, root dentry is %p.\n", client->sb->s_root); + dget(root); + dout(30, "open_root_inode success, root dentry is %p\n", root); } else root = ERR_PTR(err); ceph_mdsc_put_request(req); diff --git a/src/kernel/inode.c b/src/kernel/inode.c index fbc3c185b393a..3c9511e16b70f 100644 --- a/src/kernel/inode.c +++ b/src/kernel/inode.c @@ -51,8 +51,8 @@ int ceph_fill_inode(struct inode *inode, struct ceph_mds_reply_inode *info) u64 blocks = size + blksize - 1; do_div(blocks, blksize); - dout(30, "fill_inode %p ino %lu/%llx by %d.%d sz=%llu mode %o nlink %d\n", - inode, inode->i_ino, ceph_ino(inode), inode->i_uid, inode->i_gid, + dout(30, "fill_inode %p ino %llx by %d.%d sz=%llu mode %o nlink %d\n", + inode, info->ino, inode->i_uid, inode->i_gid, inode->i_size, inode->i_mode, inode->i_nlink); dout(30, " su %d, blkbits %d, blksize %u, blocks %llu\n", su, blkbits, blksize, blocks); @@ -175,10 +175,8 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req) if (err < 0) return err; - if (sb->s_root == NULL) { + if (sb->s_root == NULL) sb->s_root = dn; - dget(dn); - } dget(dn); for (i = 1; i < rinfo->trace_nr; i++) { -- 2.39.5