Whamcloud - gitweb
LU-721 Parallel writes to same file results in a file of zeroes
authorBobi Jam <bobijam@whamcloud.com>
Mon, 26 Sep 2011 03:18:02 +0000 (11:18 +0800)
committerJohann Lombardi <johann@whamcloud.com>
Mon, 10 Oct 2011 13:21:26 +0000 (09:21 -0400)
Canceling lock may contain data being sent to OSTs. Change
find_cbdata iterator to take that into account.

Change-Id: Ifdb21472780331cba452db68a52fd15bb6cbe35c
Author: Vladimir Saveliev <vladimir.saveliev@oracle.com>
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/1422
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
lustre/llite/dcache.c
lustre/tests/conf-sanity.sh

index 70059ec..916b0ed 100644 (file)
@@ -113,7 +113,8 @@ int ll_dcompare(struct dentry *parent, struct qstr *d_name, struct qstr *name)
 
 static inline int return_if_equal(struct ldlm_lock *lock, void *data)
 {
-        if (lock->l_flags & LDLM_FL_CANCELING)
+        if ((lock->l_flags & (LDLM_FL_CANCELING | LDLM_FL_DISCARD_DATA)) ==
+            (LDLM_FL_CANCELING | LDLM_FL_DISCARD_DATA))
                 return LDLM_ITER_CONTINUE;
         return LDLM_ITER_STOP;
 }
index 4effcd6..c32da7f 100644 (file)
@@ -830,13 +830,14 @@ test_23a() {      # was test_23
        local sleep=1
        while [ "$WAIT" -lt "$MAX_WAIT" ]; do
                sleep $sleep
+               ps -ef | grep mount
                PID1=$(ps -ef | awk '{print $2}' | grep -w $MOUNT_PID)
                PID2=$(ps -ef | awk '{print $2}' | grep -w $MOUNT_LUSTRE_PID)
                echo PID1=$PID1
                echo PID2=$PID2
                [ -z "$PID1" -a -z "$PID2" ] && break
-               echo "waiting for mount to finish ... "
                WAIT=$(( WAIT + sleep))
+               echo "waited $WAIT seconds for mount to finish ... "
        done
        if [ "$WAIT" -eq "$MAX_WAIT" ]; then
                error "MOUNT_PID $MOUNT_PID and \