X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fosd-ldiskfs%2Fosd_handler.c;h=d5895566f5884676c6803018fa68a4528472001c;hp=86a3dc9c5dbcdaa4ee25db56afcddc860c061a7f;hb=79d06b6fac3d18f2e5755a940e8afa42e70f3ba2;hpb=bad2b3e71c887d58d7834f5e4187c29e36c4b1ab diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index 86a3dc9..d589556 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -1363,7 +1363,8 @@ static void osd_inode_getattr(const struct lu_env *env, { attr->la_valid |= LA_ATIME | LA_MTIME | LA_CTIME | LA_MODE | LA_SIZE | LA_BLOCKS | LA_UID | LA_GID | - LA_FLAGS | LA_NLINK | LA_RDEV | LA_BLKSIZE; + LA_FLAGS | LA_NLINK | LA_RDEV | LA_BLKSIZE | + LA_TYPE; attr->la_atime = LTIME_S(inode->i_atime); attr->la_mtime = LTIME_S(inode->i_mtime); @@ -1973,19 +1974,13 @@ int osd_fld_lookup(const struct lu_env *env, struct osd_device *osd, struct seq_server_site *ss = osd_seq_site(osd); int rc; - if (fid_is_igif(fid)) { - range->lsr_flags = LU_SEQ_RANGE_MDT; - range->lsr_index = 0; - return 0; - } - if (fid_is_idif(fid)) { range->lsr_flags = LU_SEQ_RANGE_OST; range->lsr_index = fid_idif_ost_idx(fid); return 0; } - if (!fid_is_norm(fid)) { + if (!fid_seq_in_fldb(fid_seq(fid))) { range->lsr_flags = LU_SEQ_RANGE_MDT; if (ss != NULL) /* FIXME: If ss is NULL, it suppose not get lsr_index @@ -3166,7 +3161,8 @@ static int osd_remote_fid(const struct lu_env *env, struct osd_device *osd, int rc; ENTRY; - if ((!fid_is_norm(fid) && !fid_is_igif(fid)) || ss == NULL) + /* Those FID seqs, which are not in FLDB, must be local seq */ + if (unlikely(!fid_seq_in_fldb(fid_seq(fid)) || ss == NULL)) RETURN(0); rc = osd_fld_lookup(env, osd, fid, range);