Whamcloud - gitweb
LU-1812 ext4: ec_type has been dropped from ext4_ext_cache
[fs/lustre-release.git] / lustre / mdt / mdt_lib.c
index 051421b..42b894a 100644 (file)
@@ -690,9 +690,9 @@ int mdt_handle_last_unlink(struct mdt_thread_info *info, struct mdt_object *mo,
                 repbody->valid |= OBD_MD_FLCOOKIE;
         }
 
-        if (info->mti_mdt->mdt_opts.mo_oss_capa &&
-            info->mti_exp->exp_connect_flags & OBD_CONNECT_OSS_CAPA &&
-            repbody->valid & OBD_MD_FLEASIZE) {
+       if (info->mti_mdt->mdt_opts.mo_oss_capa &&
+           exp_connect_flags(info->mti_exp) & OBD_CONNECT_OSS_CAPA &&
+           repbody->valid & OBD_MD_FLEASIZE) {
                 struct lustre_capa *capa;
 
                 capa = req_capsule_server_get(info->mti_pill, &RMF_CAPA2);
@@ -1081,12 +1081,18 @@ static int mdt_unlink_unpack(struct mdt_thread_info *info)
         else
                 ma->ma_attr_flags &= ~MDS_VTX_BYPASS;
 
-        info->mti_spec.no_create = !!req_is_replay(mdt_info_req(info));
+       info->mti_spec.no_create = !!req_is_replay(mdt_info_req(info));
 
         rc = mdt_dlmreq_unpack(info);
         RETURN(rc);
 }
 
+static int mdt_rmentry_unpack(struct mdt_thread_info *info)
+{
+       info->mti_spec.sp_rm_entry = 1;
+       return mdt_unlink_unpack(info);
+}
+
 static int mdt_rename_unpack(struct mdt_thread_info *info)
 {
        struct lu_ucred         *uc = mdt_ucred(info);
@@ -1329,13 +1335,14 @@ static int mdt_setxattr_unpack(struct mdt_thread_info *info)
 typedef int (*reint_unpacker)(struct mdt_thread_info *info);
 
 static reint_unpacker mdt_reint_unpackers[REINT_MAX] = {
-        [REINT_SETATTR]  = mdt_setattr_unpack,
-        [REINT_CREATE]   = mdt_create_unpack,
-        [REINT_LINK]     = mdt_link_unpack,
-        [REINT_UNLINK]   = mdt_unlink_unpack,
-        [REINT_RENAME]   = mdt_rename_unpack,
-        [REINT_OPEN]     = mdt_open_unpack,
-        [REINT_SETXATTR] = mdt_setxattr_unpack
+       [REINT_SETATTR]  = mdt_setattr_unpack,
+       [REINT_CREATE]   = mdt_create_unpack,
+       [REINT_LINK]     = mdt_link_unpack,
+       [REINT_UNLINK]   = mdt_unlink_unpack,
+       [REINT_RENAME]   = mdt_rename_unpack,
+       [REINT_OPEN]     = mdt_open_unpack,
+       [REINT_SETXATTR] = mdt_setxattr_unpack,
+       [REINT_RMENTRY]  = mdt_rmentry_unpack,
 };
 
 int mdt_reint_unpack(struct mdt_thread_info *info, __u32 op)