Whamcloud - gitweb
b=20989 Don't search for inode in nfs get_dentry
[fs/lustre-release.git] / lustre / fld / fld_handler.c
index 2b6ab12..a799088 100644 (file)
@@ -67,6 +67,7 @@
 #include <lustre_fid.h>
 #include <lustre_req_layout.h>
 #include "fld_internal.h"
+#include <lustre_fid.h>
 
 #ifdef __KERNEL__
 
@@ -134,7 +135,7 @@ int fld_server_create(struct lu_server_fld *fld,
         ENTRY;
 
         info = lu_context_key_get(&env->le_ctx, &fld_thread_key);
-        mutex_lock(&fld->lsf_lock);
+        cfs_mutex_lock(&fld->lsf_lock);
 
         erange = &info->fti_lrange;
         new = &info->fti_irange;
@@ -228,7 +229,7 @@ out:
         if (rc == 0)
                 fld_cache_insert(fld->lsf_cache, new);
 
-        mutex_unlock(&fld->lsf_lock);
+        cfs_mutex_unlock(&fld->lsf_lock);
 
         CDEBUG((rc != 0 ? D_ERROR : D_INFO),
                "%s: FLD create: given range : "DRANGE
@@ -466,6 +467,7 @@ int fld_server_init(struct lu_server_fld *fld, struct dt_device *dt,
                     int mds_node_id)
 {
         int cache_size, cache_threshold;
+        struct lu_seq_range range;
         int rc;
         ENTRY;
 
@@ -478,7 +480,7 @@ int fld_server_init(struct lu_server_fld *fld, struct dt_device *dt,
         cache_threshold = cache_size *
                 FLD_SERVER_CACHE_THRESHOLD / 100;
 
-        mutex_init(&fld->lsf_lock);
+        cfs_mutex_init(&fld->lsf_lock);
         fld->lsf_cache = fld_cache_init(fld->lsf_name,
                                         cache_size, cache_threshold);
         if (IS_ERR(fld->lsf_cache)) {
@@ -499,6 +501,13 @@ int fld_server_init(struct lu_server_fld *fld, struct dt_device *dt,
                 GOTO(out, rc);
 
         fld->lsf_control_exp = NULL;
+
+        /* Insert reserved sequence number of ".lustre" into fld cache. */
+        range.lsr_start = LU_DOT_LUSTRE_SEQ;
+        range.lsr_end = LU_DOT_LUSTRE_SEQ + 1;
+        range.lsr_mdt = 0;
+        fld_cache_insert(fld->lsf_cache, &range);
+
         EXIT;
 out:
         if (rc)