Whamcloud - gitweb
LU-2919 hsm: Implementation of exclusive open
[fs/lustre-release.git] / lustre / mdt / mdt_hsm.c
index 55c1069..b4d10e6 100644 (file)
@@ -20,7 +20,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012, 2013, Intel Corporation.
  * Use is subject to license terms.
  * Copyright (c) 2011, 2012 Commissariat a l'energie atomique et aux energies
  *                          alternatives
@@ -34,9 +34,6 @@
  * Author: JC Lafoucriere <jacques-charles.lafoucriere@cea.fr>
  */
 
-#ifndef EXPORT_SYMTAB
-# define EXPORT_SYMTAB
-#endif
 #define DEBUG_SUBSYSTEM S_MDS
 
 #include "mdt_internal.h"
@@ -55,7 +52,7 @@
 #define MDT_HSM_FREE(ptr, size) OBD_FREE_LARGE((ptr), (size))
 
 /*
- * fake functions, will be replace by real one with HSM Coordinator patch
+ * fake functions, will be replaced by real one with HSM Coordinator patch
  */
 
 int mdt_hsm_copytool_send(struct obd_export *exp)
@@ -93,7 +90,7 @@ static int mdt_hsm_coordinator_actions(struct mdt_thread_info *info,
                                       __u64 *compound_id,
                                       int mti_attr_is_valid)
 {
-       return 0;
+       return -ENODATA;
 }
 
 /**
@@ -145,6 +142,8 @@ int mdt_hsm_progress(struct mdt_thread_info *info)
        if (hpk == NULL)
                RETURN(-EPROTO);
 
+       hpk->hpk_errval = lustre_errno_ntoh(hpk->hpk_errval);
+
        CDEBUG(D_HSM, "Progress on "DFID": len="LPU64" err=%d\n",
               PFID(&hpk->hpk_fid), hpk->hpk_extent.length, hpk->hpk_errval);
 
@@ -393,7 +392,7 @@ int mdt_hsm_action(struct mdt_thread_info *info)
        hal->hal_version = HAL_VERSION;
        hal->hal_archive_id = 0;
        hal->hal_flags = 0;
-       obd_uuid2fsname(hal->hal_fsname, mdt2obd_dev(info->mti_mdt)->obd_name,
+       obd_uuid2fsname(hal->hal_fsname, mdt_obd_name(info->mti_mdt),
                        MTI_NAME_MAXLEN);
        hal->hal_count = 1;
        hai = hai_zero(hal);
@@ -432,7 +431,7 @@ int mdt_hsm_action(struct mdt_thread_info *info)
        default:
                hca->hca_action = HUA_NONE;
                CERROR("%s: Unknown hsm action: %d on "DFID"\n",
-                      mdt2obd_dev(info->mti_mdt)->obd_name,
+                      mdt_obd_name(info->mti_mdt),
                       hai->hai_action, PFID(&hai->hai_fid));
                break;
        }
@@ -532,7 +531,7 @@ int mdt_hsm_request(struct mdt_thread_info *info)
        hal->hal_version = HAL_VERSION;
        hal->hal_archive_id = hr->hr_archive_id;
        hal->hal_flags = hr->hr_flags;
-       obd_uuid2fsname(hal->hal_fsname, mdt2obd_dev(info->mti_mdt)->obd_name,
+       obd_uuid2fsname(hal->hal_fsname, mdt_obd_name(info->mti_mdt),
                        MTI_NAME_MAXLEN);
 
        hal->hal_count = hr->hr_itemcount;
@@ -554,7 +553,9 @@ int mdt_hsm_request(struct mdt_thread_info *info)
                rc = 0;
 
        MDT_HSM_FREE(hal, hal_size);
-       EXIT;
+
+       GOTO(out_ucred, rc);
+
 out_ucred:
        mdt_exit_ucred(info);
        return rc;