Whamcloud - gitweb
LU-15388 osd-ldiskfs: wrong dot/dotdot FID for local agent 04/45904/8
authorLi Xi <lixi@ddn.com>
Tue, 21 Dec 2021 10:24:30 +0000 (18:24 +0800)
committerOleg Drokin <green@whamcloud.com>
Mon, 14 Nov 2022 08:24:58 +0000 (08:24 +0000)
Wrong FIDs are passed into osd_add_dot_dotdot_internal() in
osd_create_local_agent_inode(). Local agent inode is created to
satisfy e2fsck, and these two FIDs are not used anywhere, which
won't cause any known issue.

Signed-off-by: Li Xi <lixi@ddn.com>
Signed-off-by: Lai Siyao <lai.siyao@whamcloud.com>
Change-Id: Ife39d539921a37994f9c6046ae066e1927154136
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/45904
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Li Dongyang <dongyangli@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/osd-ldiskfs/osd_handler.c

index dd7dcf9..15dad8f 100644 (file)
@@ -4031,9 +4031,9 @@ static struct inode *osd_create_local_agent_inode(const struct lu_env *env,
        if (!S_ISDIR(type))
                RETURN(local);
 
-       rc = osd_add_dot_dotdot_internal(info, local, pobj->oo_inode,
+       rc = osd_add_dot_dotdot_internal(info, local, pobj->oo_inode, fid,
                                         lu_object_fid(&pobj->oo_dt.do_lu),
-                                        fid, oh);
+                                        oh);
        if (rc != 0) {
                CERROR("%s: "DFID" add dot dotdot error: rc = %d\n",
                        osd_name(osd), PFID(fid), rc);
@@ -6230,6 +6230,9 @@ static int osd_ea_lookup_rec(const struct lu_env *env, struct osd_object *obj,
                                osd_add_oi_cache(osd_oti_get(env),
                                                 osd_obj2dev(obj), id, fid);
                }
+               CDEBUG(D_INODE, DFID"/"DNAME" => "DFID"\n",
+                      PFID(lu_object_fid(&obj->oo_dt.do_lu)), PNAME(&ln),
+                      PFID(fid));
        } else {
                rc = PTR_ERR(bh);
        }