Whamcloud - gitweb
(1) fid is now allocated by client.
authorhuanghua <huanghua>
Fri, 14 Jul 2006 11:39:48 +0000 (11:39 +0000)
committerhuanghua <huanghua>
Fri, 14 Jul 2006 11:39:48 +0000 (11:39 +0000)
(2) transaction number is updated in mdt_intent_policy if request is an intent lock;

lustre/mdc/mdc_locks.c
lustre/mdt/mdt_handler.c
lustre/utils/loadmod_all.sh

index f1b9608..3835584 100644 (file)
@@ -126,12 +126,24 @@ int mdc_set_lock_data(struct obd_export *exp, __u64 *lockh, void *data)
         if (lock->l_ast_data && lock->l_ast_data != data) {
                 struct inode *new_inode = data;
                 struct inode *old_inode = lock->l_ast_data;
+/* FIXME: This is commented out by huanghua@clusterfs.com,
+ * if anything wrong, please restore that */
+/*
                 LASSERTF(old_inode->i_state & I_FREEING,
                          "Found existing inode %p/%lu/%u state %lu in lock: "
                          "setting data to %p/%lu/%u\n", old_inode,
                          old_inode->i_ino, old_inode->i_generation,
                          old_inode->i_state,
                          new_inode, new_inode->i_ino, new_inode->i_generation);
+*/
+                if (!(old_inode->i_state & I_FREEING)) {
+                        CERROR("Found existing inode %p/%lu/%u state %lu in lock: "
+                         "setting data to %p/%lu/%u\n", old_inode,
+                         old_inode->i_ino, old_inode->i_generation,
+                         old_inode->i_state,
+                         new_inode, new_inode->i_ino, new_inode->i_generation);
+                        iput(old_inode);
+                }
         }
 #endif
         lock->l_ast_data = data;
@@ -675,9 +687,11 @@ int mdc_intent_lock(struct obd_export *exp, struct md_op_data *op_data,
 
         /* If we were revalidating a fid/name pair, mark the intent in
          * case we fail and get called again from lookup */
-        if (fid_is_sane(&op_data->fid2) && 
-                        !it_disposition(it, DISP_OPEN_CREATE)) {
-                it_set_disposition(it, DISP_ENQ_COMPLETE);
+        if (fid_is_sane(&op_data->fid2)){
+/* FIXME: This is commented out by huanghua@clusterfs.com,
+ * if anything wrong, please restore that */
+//                        !it_disposition(it, DISP_OPEN_CREATE)) {
+//                it_set_disposition(it, DISP_ENQ_COMPLETE);
                 /* Also: did we find the same inode? */
                 if (memcmp(&op_data->fid2, &mdt_body->fid1, sizeof(op_data->fid2)))
                         RETURN(-ESTALE);
index 17165b8..d60f427 100644 (file)
@@ -1068,7 +1068,8 @@ static int mdt_req_handle(struct mdt_thread_info *info,
 
         /* If we're DISCONNECTing, the mdt_export_data is already freed */
         if (h->mh_opc != MDS_DISCONNECT &&
-            h->mh_opc != MDS_READPAGE) {
+            h->mh_opc != MDS_READPAGE &&
+            h->mh_opc != LDLM_ENQUEUE) {
                 /* FIXME: fake untill journal callback is OK.*/
                 mdt_update_last_transno(info, result);
         }
index f7e254d..4459822 100755 (executable)
@@ -3,19 +3,42 @@
 dmesg -c >/dev/null
 dmesg -n 8
 
-modprobe mgs
-modprobe fid
-modprobe fld
-modprobe mgc
+
+modprobe mds
 modprobe osd
-modprobe ost
 modprobe obdfilter
-modprobe mdd
-modprobe cmm
-modprobe mdt
-modprobe mds
+modprobe ost
+modprobe mgs
+modprobe lov
+modprobe ptlrpc
+modprobe obdecho
+modprobe llite
+modprobe mgc
+modprobe ldiskfs
+modprobe quotafmt_test
 modprobe osc
+modprobe mdt
+modprobe lquota
+modprobe quotactl_test
+modprobe quotacheck_test
+modprobe cmm
 modprobe mdc
+modprobe fsfilt_ldiskfs
+modprobe lvfs
+modprobe llog_test
+modprobe obdclass
+modprobe mdd
+modprobe fld
+modprobe fid
+modprobe lmv
+modprobe libcfs
+modprobe pingcli
+modprobe spingsrv
+modprobe pingsrv
+modprobe spingcli
+modprobe lnet
+modprobe ksocklnd
+
 
 HOST=`hostname`
 echo -1 >/proc/sys/lnet/debug
@@ -24,3 +47,4 @@ echo "/r/tmp/$HOST.debug" >/proc/sys/lnet/daemon_file
 #  To generate gdb debug file:
 rm -f /r/tmp/ogdb-`hostname`
 ./lctl modules > /r/tmp/ogdb-`hostname`
+