Changes by: flatcap
Update of /cvsroot/linux-ntfs/ntfs-driver-tng/scripts
In directory usw-pr-cvs1:/tmp/cvs-serv3204/scripts
Modified Files:
Makefile rl.c
Log Message:
the 6 file cases and the 80 pure cases work
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfs-driver-tng/scripts/Makefile,v
retrieving revision 1.3
retrieving revision 1.4
diff -U2 -r1.3 -r1.4
--- Makefile 12 Feb 2002 21:42:58 -0000 1.3
+++ Makefile 13 Feb 2002 01:42:44 -0000 1.4
@@ -40,5 +40,5 @@
$(RM) tags
$(RM) {c,n}{1,4}
- $(RM) frag[1-6]
+ $(RM) frag[123][123][123]
tags:
@@ -64,20 +64,20 @@
testf:
- $(RM) frag[1-6]
- $(CC) $(CFLAGS) -DTESTF=1 rl.c -o rl
- rl > frag1
- $(CC) $(CFLAGS) -DTESTF=2 rl.c -o rl
- rl > frag2
- $(CC) $(CFLAGS) -DTESTF=3 rl.c -o rl
- rl > frag3
- $(CC) $(CFLAGS) -DTESTF=4 rl.c -o rl
- rl > frag4
- $(CC) $(CFLAGS) -DTESTF=5 rl.c -o rl
- rl > frag5
- $(CC) $(CFLAGS) -DTESTF=6 rl.c -o rl
- rl > frag6
+ $(RM) frag[123][123][123]
+ $(CC) $(CFLAGS) -DTESTF=123 rl.c -o rl
+ rl > frag123
+ $(CC) $(CFLAGS) -DTESTF=132 rl.c -o rl
+ rl > frag132
+ $(CC) $(CFLAGS) -DTESTF=213 rl.c -o rl
+ rl > frag213
+ $(CC) $(CFLAGS) -DTESTF=231 rl.c -o rl
+ rl > frag231
+ $(CC) $(CFLAGS) -DTESTF=312 rl.c -o rl
+ rl > frag312
+ $(CC) $(CFLAGS) -DTESTF=321 rl.c -o rl
+ rl > frag321
@echo
- @for i in frag[1-6]; do \
- diff -qs $$i test/$$i ; \
+ @for i in frag[123][123][123]; do \
+ diff -qs $$i test/frag ; \
done
@echo
Index: rl.c
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfs-driver-tng/scripts/rl.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -U2 -r1.19 -r1.20
--- rl.c 12 Feb 2002 21:42:58 -0000 1.19
+++ rl.c 13 Feb 2002 01:42:45 -0000 1.20
@@ -11,7 +11,4 @@
#define MULTI 1
#endif
-#ifndef TESTF
-#define TESTF 0
-#endif
#if CONTIG
@@ -134,5 +131,4 @@
BUG_ON (!orig || !new);
- //ntfs_debug ("ntfs_rl_append\n");
right = ntfs_rl_merge (new + nsize - 1, orig + loc + 1);
@@ -181,5 +177,4 @@
BUG_ON (!orig || !new);
- //ntfs_debug ("ntfs_rl_insert\n");
if (loc > 0) {
left = ntfs_rl_merge (orig + loc - 1, new);
@@ -263,5 +258,4 @@
BUG_ON (!orig || !new);
- //ntfs_debug ("ntfs_rl_replace\n");
right = ntfs_rl_merge (new + nsize - 1, orig + loc + 1);
if (loc > 0)
@@ -312,5 +306,4 @@
BUG_ON (!orig || !new);
- //ntfs_debug ("ntfs_rl_split\n");
res = ntfs_rl_realloc (orig, osize, osize + nsize + 1);
if (IS_ERR (res))
@@ -365,4 +358,5 @@
int dfinal, sfinal; /* The last index into @[ds]rl with
lcn >= LCN_HOLE. */
+ int marker = 0;
#if 1
@@ -439,4 +433,8 @@
;
+ if (srl[send].lcn == LCN_ENOENT) {
+ marker = send;
+ }
+
/* Scan to the last element with lcn >= LCN_HOLE. */
for (sfinal = send; sfinal >= 0 && srl[sfinal].lcn < LCN_HOLE; sfinal--)
@@ -456,4 +454,11 @@
((drl[dins].vcn + drl[dins].length) <= /* End of hole */
(srl[send-1].vcn + srl[send-1].length)));
+ //srl[send-1].vcn));
+
+ /* Or we'll lose an end marker */
+ if (start && finish && (drl[dins].length == 0))
+ ss++;
+ if (marker && (drl[dins].vcn + drl[dins].length > srl[send-1].vcn))
+ finish = FALSE;
#if 0
@@ -473,4 +478,9 @@
else
nrl = ntfs_rl_split (drl, ds, srl + sstart, ss, dins);
+
+ if (marker) {
+ for (ds = 0; nrl[ds].lcn; ds++) ;
+ nrl = ntfs_rl_insert (nrl, ds+1, srl + marker, 1, ds-1);
+ }
}
@@ -964,5 +974,5 @@
#endif
-#if 1 || defined (TESTF)
+#if 0 || defined (TESTF)
/**
* fragged
@@ -1002,114 +1012,79 @@
return 1;
-// CASE 123 - WORKS FINE.
-#if 0 || (TESTF == 1)
+#if 0 || (TESTF == 123)
rl1 = decompress_mapping_pairs (&vol, buf1, NULL);
if (IS_ERR (rl1))
return 1;
- //printf ("rl1 %p\n", rl1);
-// rl_insert: OK
rl2 = decompress_mapping_pairs (&vol, buf2, rl1);
if (IS_ERR (rl2))
return 1;
- //printf ("rl2 %p\n", rl2);
-// rl_replace: OK
rl3 = decompress_mapping_pairs (&vol, buf3, rl2);
if (IS_ERR (rl3))
return 1;
- //printf ("rl3 %p\n", rl3);
#endif
-// CASE 132 - WORKS FINE
-#if 0 || (TESTF == 2)
+#if 0 || (TESTF == 132)
rl1 = decompress_mapping_pairs (&vol, buf1, NULL);
if (IS_ERR (rl1))
return 1;
- //printf ("rl1 %p\n", rl1);
-// rl_append: OK
rl2 = decompress_mapping_pairs (&vol, buf3, rl1);
if (IS_ERR (rl2))
return 1;
- //printf ("rl2 %p\n", rl2);
-// rl_replace: OK
rl3 = decompress_mapping_pairs (&vol, buf2, rl2);
if (IS_ERR (rl3))
return 1;
- //printf ("rl3 %p\n", rl3);
#endif
-// CASE 213 - DOESN'T WORK YET.
-#if 0 || (TESTF == 3)
+#if 0 || (TESTF == 213)
rl1 = decompress_mapping_pairs (&vol, buf2, NULL);
if (IS_ERR (rl1))
return 1;
- //printf ("rl1 %p\n", rl1);
-// rl_replace: OK
rl2 = decompress_mapping_pairs (&vol, buf1, rl1);
if (IS_ERR (rl2))
return 1;
- //printf ("rl2 %p\n", rl2);
-// not looked at
rl3 = decompress_mapping_pairs (&vol, buf3, rl2);
if (IS_ERR (rl3))
return 1;
- //printf ("rl3 %p\n", rl3);
#endif
-// CASE 231 - DOESN'T WORK YET.
-#if 0 || (TESTF == 4)
+#if 0 || (TESTF == 231)
rl1 = decompress_mapping_pairs (&vol, buf2, NULL);
if (IS_ERR (rl1))
return 1;
- //printf ("rl1 %p\n", rl1);
-// rl_replace: OK
rl2 = decompress_mapping_pairs (&vol, buf3, rl1);
if (IS_ERR (rl2))
return 1;
- //printf ("rl2 %p\n", rl2);
-// rl_append: FAILED
rl3 = decompress_mapping_pairs (&vol, buf1, rl2);
if (IS_ERR (rl3))
return 1;
- //printf ("rl3 %p\n", rl3);
#endif
-// CASE 312 - DOESN'T WORK YET.
-#if 0 || (TESTF == 5)
+#if 0 || (TESTF == 312)
rl1 = decompress_mapping_pairs (&vol, buf3, NULL);
if (IS_ERR (rl1))
return 1;
- //printf ("rl1 %p\n", rl1);
-// rl_append: FAILED
rl2 = decompress_mapping_pairs (&vol, buf1, rl1);
if (IS_ERR (rl2))
return 1;
- //printf ("rl2 %p\n", rl2);
-// not looked at
rl3 = decompress_mapping_pairs (&vol, buf2, rl2);
if (IS_ERR (rl3))
return 1;
- //printf ("rl3 %p\n", rl3);
#endif
-// CASE 321 - DOESN'T WORK YET.
-#if 0 || (TESTF == 6)
+#if 0 || (TESTF == 321)
rl1 = decompress_mapping_pairs (&vol, buf3, NULL);
if (IS_ERR (rl1))
return 1;
- //printf ("rl1 %p\n", rl1);
-// rl_split: FAILED
rl2 = decompress_mapping_pairs (&vol, buf2, rl1);
if (IS_ERR (rl2))
return 1;
- //printf ("rl2 %p\n", rl2);
-// not looked at
rl3 = decompress_mapping_pairs (&vol, buf1, rl2);
if (IS_ERR (rl3))
return 1;
- //printf ("rl3 %p\n", rl3);
#endif
/*
}
*/
+ ntfs_debug_dump_runlist (rl3);
#endif
//printf ("%d,%d\n", ntfs_a, ntfs_f);
|