Whamcloud - gitweb
remove stale capa structure from mds/filter obd.
[fs/lustre-release.git] / lustre / mds / mds_capa.c
index 8a87a54..de840a6 100644 (file)
@@ -515,7 +515,7 @@ int mds_pack_capa(struct obd_device *obd, struct mds_export_data *med,
                 if (mfd == NULL) {
                         DEBUG_CAPA(D_INFO, req_capa, "no handle "LPX64" for",
                                    req_body->handle.cookie);
-                        RETURN(-ESTALE);
+                        RETURN(-ENOENT);
                 }
 
                 mode = accmode(mfd->mfd_mode);
@@ -533,7 +533,7 @@ int mds_pack_capa(struct obd_device *obd, struct mds_export_data *med,
         LASSERT(capa != NULL);
 
         ocapa = capa_get(req_capa->lc_uid, req_capa->lc_op, req_capa->lc_mdsid,
-                         req_capa->lc_ino, MDS_CAPA);
+                         req_capa->lc_ino, req_capa->lc_igen, MDS_CAPA);
         if (ocapa) {
                 expired = capa_is_to_expire(ocapa);
                 if (!expired) {
@@ -555,13 +555,15 @@ int mds_pack_capa(struct obd_device *obd, struct mds_export_data *med,
         memcpy(key, CUR_CAPA_KEY(mds)->lk_key, sizeof(key));
         spin_unlock(&mds_capa_lock);
 
-        capa_hmac(mds->mds_capa_hmac, key, capa);
+        capa_hmac(key, capa);
 
         ocapa = capa_renew(capa, MDS_CAPA);
         if (!ocapa)
                 rc = -ENOMEM;
+        capa_put(ocapa);
 out:
         if (rc == 0)
                 body->valid |= OBD_MD_CAPA;
         RETURN(rc);
 }
+