Whamcloud - gitweb
- get rid of ll_fid in mgs
authoryury <yury>
Fri, 14 Apr 2006 10:51:49 +0000 (10:51 +0000)
committeryury <yury>
Fri, 14 Apr 2006 10:51:49 +0000 (10:51 +0000)
lustre/mgs/mgs_fs.c

index 868db40..d18bae1 100644 (file)
 /* Look up an entry by inode number. */
 /* this function ONLY returns valid dget'd dentries with an initialized inode
    or errors */
-static struct dentry *mgs_fid2dentry(struct mgs_obd *mgs, struct ll_fid *fid)
+static struct dentry *mgs_fid2dentry(struct mgs_obd *mgs,
+                                     __u64 ino, __u32 gen)
 {
         char fid_name[32];
-        unsigned long ino = fid->id;
-        __u32 generation = fid->generation;
         struct inode *inode;
         struct dentry *result;
+        ENTRY;
 
         CDEBUG(D_DENTRY, "--> mgs_fid2dentry: ino/gen %lu/%u, sb %p\n",
-               ino, generation, mgs->mgs_sb);
+               (unsigned long)ino, gen, mgs->mgs_sb);
 
         if (ino == 0)
                 RETURN(ERR_PTR(-ESTALE));
         
-        snprintf(fid_name, sizeof(fid_name), "0x%lx", ino);
+        snprintf(fid_name, sizeof(fid_name), "0x%lx", (unsigned long)ino);
         
-        /* under ext3 this is neither supposed to return bad inodes
-           nor NULL inodes. */
+        /* under ext3 this is neither supposed to return bad inodes nor NULL
+           inodes. */
         result = ll_lookup_one_len(fid_name, mgs->mgs_fid_de, strlen(fid_name));
         if (IS_ERR(result))
                 RETURN(result);
@@ -84,13 +84,12 @@ static struct dentry *mgs_fid2dentry(struct mgs_obd *mgs, struct ll_fid *fid)
                 RETURN(ERR_PTR(-ENOENT));
         }
 
-        if (generation && inode->i_generation != generation) {
+        if (gen && inode->i_generation != gen) {
                 /* we didn't find the right inode.. */
                 CDEBUG(D_INODE, "found wrong generation: inode %lu, link: %lu, "
                        "count: %d, generation %u/%u\n", inode->i_ino,
-                       (unsigned long)inode->i_nlink,
-                       atomic_read(&inode->i_count), inode->i_generation,
-                       generation);
+                       (unsigned long)inode->i_nlink, atomic_read(&inode->i_count),
+                       inode->i_generation, gen);
                 l_dput(result);
                 RETURN(ERR_PTR(-ENOENT));
         }
@@ -102,10 +101,7 @@ static struct dentry *mgs_lvfs_fid2dentry(__u64 id, __u32 gen, __u64 gr,
                                           void *data)
 {
         struct obd_device *obd = data;
-        struct ll_fid fid;
-        fid.id = id;
-        fid.generation = gen;
-        return mgs_fid2dentry(&obd->u.mgs, &fid);
+        return mgs_fid2dentry(&obd->u.mgs, id, gen);
 }
 
 struct lvfs_callback_ops mgs_lvfs_ops = {