erofs: keep meta inode into erofs_buf
[linux-2.6-microblaze.git] / fs / erofs / namei.c
index f091e9a..43096ba 100644 (file)
@@ -99,7 +99,8 @@ static void *erofs_find_target_block(struct erofs_buf *target,
                struct erofs_buf buf = __EROFS_BUF_INITIALIZER;
                struct erofs_dirent *de;
 
-               de = erofs_bread(&buf, dir, mid, EROFS_KMAP);
+               buf.inode = dir;
+               de = erofs_bread(&buf, mid, EROFS_KMAP);
                if (!IS_ERR(de)) {
                        const int nameoff = nameoff_from_disk(de->nameoff, bsz);
                        const int ndirents = nameoff / sizeof(*de);
@@ -170,6 +171,7 @@ int erofs_namei(struct inode *dir, const struct qstr *name, erofs_nid_t *nid,
 
        qn.name = name->name;
        qn.end = name->name + name->len;
+       buf.inode = dir;
 
        ndirents = 0;
        de = erofs_find_target_block(&buf, dir, &qn, &ndirents);