]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: export ops should use ceph_find_inode
authorSage Weil <sage@newdream.net>
Fri, 9 May 2008 17:00:51 +0000 (10:00 -0700)
committerSage Weil <sage@newdream.net>
Fri, 9 May 2008 17:00:51 +0000 (10:00 -0700)
src/kernel/export.c
src/kernel/super.h

index f4e7dffc8300cea693979effd901d01cb9e07457..5ec67cee7f5a356328a7cb12ab1483a22a57124e 100644 (file)
@@ -47,13 +47,13 @@ struct dentry *ceph_fh_to_dentry(struct super_block *sb, struct fid *fid,
        struct inode *inode;
        struct dentry *dentry;
 
-       inode = ceph_get_inode(sb, ino);
+       inode = ceph_find_inode(sb, ino);
        if (!inode) {
-               dout(10, "fh_to_dentry %llx.%d -- no inode\n", ino, gen);
+               derr(10, "fh_to_dentry %llx.%d -- no inode\n", ino, gen);
                return ERR_PTR(-ESTALE);
        }
        if (inode->i_generation != fh[2]) {
-               dout(10, "fh_to_dentry %llx.%d -- %p bad gen %d\n", ino, gen,
+               derr(10, "fh_to_dentry %llx.%d -- %p gen is %d\n", ino, gen,
                     inode, inode->i_generation);
                iput(inode);
                return ERR_PTR(-ESTALE);
@@ -61,7 +61,7 @@ struct dentry *ceph_fh_to_dentry(struct super_block *sb, struct fid *fid,
        
        dentry = d_alloc_anon(inode);
        if (!dentry) {
-               dout(10, "fh_to_dentry %llx.%d -- inode %p but ENOMEM\n", 
+               derr(10, "fh_to_dentry %llx.%d -- inode %p but ENOMEM\n", 
                     ino, gen, inode);
                iput(inode);
                return ERR_PTR(-ENOMEM);
@@ -84,13 +84,13 @@ struct dentry *ceph_fh_to_parent(struct super_block *sb, struct fid *fid,
                return ERR_PTR(-ESTALE);
        gen = fh[5];
 
-       inode = ceph_get_inode(sb, ino);
+       inode = ceph_find_inode(sb, ino);
        if (!inode) {
-               dout(10, "fh_to_parent %llx.%d -- no inode\n", ino, gen);
+               derr(10, "fh_to_parent %llx.%d -- no inode\n", ino, gen);
                return ERR_PTR(-ESTALE);
        }
        if (inode->i_generation != gen) {
-               dout(10, "fh_to_parent %llx.%d -- %p bad gen %d\n", ino, gen,
+               derr(10, "fh_to_parent %llx.%d -- %p gen is %d\n", ino, gen,
                     inode, inode->i_generation);
                iput(inode);
                return ERR_PTR(-ESTALE);
@@ -98,7 +98,7 @@ struct dentry *ceph_fh_to_parent(struct super_block *sb, struct fid *fid,
        
        dentry = d_alloc_anon(inode);
        if (!dentry) {
-               dout(10, "fh_to_parent %llx.%d -- inode %p but ENOMEM\n", 
+               derr(10, "fh_to_parent %llx.%d -- inode %p but ENOMEM\n", 
                     ino, gen, inode);
                iput(inode);
                return ERR_PTR(-ENOMEM);
index 53446f122f0c38e5ced41a7f3dd484689e519a14..ed07425d02b79dd852f42f059b29257afd8f5ed0 100644 (file)
@@ -267,6 +267,13 @@ static inline int ceph_ino_compare(struct inode *inode, void *data)
        return (ci->i_ceph_ino == ino);
 }
 
+static inline struct inode *ceph_find_inode(struct super_block *sb, __u64 ino)
+{
+       ino_t inot = ceph_ino_to_ino(ino);
+       return ilookup5(sb, inot, ceph_ino_compare, &ino);
+}
+
+
 /*
  * caps helpers
  */
@@ -355,6 +362,7 @@ extern const char *ceph_msg_type_name(int type);
 /* inode.c */
 extern const struct inode_operations ceph_file_iops;
 extern const struct inode_operations ceph_special_iops;
+extern struct inode *ceph_get_inode(struct super_block *sb, __u64 ino);
 extern struct inode *ceph_get_inode(struct super_block *sb, u64 ino);
 extern int ceph_fill_inode(struct inode *inode,
                           struct ceph_mds_reply_inode *info);