-Index: linux-2.4.24/fs/ext3/extents.c
+Index: linux-2.4.24-b1_4/fs/ext3/extents.c
===================================================================
---- linux-2.4.24.orig/fs/ext3/extents.c 2003-01-30 13:24:37.000000000 +0300
-+++ linux-2.4.24/fs/ext3/extents.c 2004-09-12 17:37:14.000000000 +0400
+--- linux-2.4.24-b1_4.orig/fs/ext3/extents.c 2003-01-30 18:24:37.000000000 +0800
++++ linux-2.4.24-b1_4/fs/ext3/extents.c 2004-09-30 14:04:33.000000000 +0800
@@ -0,0 +1,2262 @@
+/*
+ * Copyright (c) 2003, Cluster File Systems, Inc, info@clusterfs.com
+EXPORT_SYMBOL(ext3_ext_find_goal);
+EXPORT_SYMBOL(ext3_ext_calc_credits_for_insert);
+
-Index: linux-2.4.24/fs/ext3/ialloc.c
+Index: linux-2.4.24-b1_4/fs/ext3/ialloc.c
===================================================================
---- linux-2.4.24.orig/fs/ext3/ialloc.c 2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/fs/ext3/ialloc.c 2004-09-12 17:49:24.000000000 +0400
-@@ -593,10 +593,21 @@
+--- linux-2.4.24-b1_4.orig/fs/ext3/ialloc.c 2004-09-30 14:04:27.000000000 +0800
++++ linux-2.4.24-b1_4/fs/ext3/ialloc.c 2004-09-30 14:04:33.000000000 +0800
+@@ -592,10 +592,21 @@
iloc.bh = NULL;
goto fail;
}
unlock_super (sb);
if(DQUOT_ALLOC_INODE(inode)) {
-Index: linux-2.4.24/fs/ext3/inode.c
+Index: linux-2.4.24-b1_4/fs/ext3/inode.c
===================================================================
---- linux-2.4.24.orig/fs/ext3/inode.c 2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/fs/ext3/inode.c 2004-09-12 17:37:14.000000000 +0400
+--- linux-2.4.24-b1_4.orig/fs/ext3/inode.c 2004-09-30 14:04:27.000000000 +0800
++++ linux-2.4.24-b1_4/fs/ext3/inode.c 2004-09-30 14:04:33.000000000 +0800
@@ -848,6 +848,15 @@
goto reread;
}
handle = start_transaction(inode);
if (IS_ERR(handle))
return; /* AKPM: return what? */
-@@ -2547,6 +2559,9 @@
+@@ -2536,6 +2548,9 @@
int indirects = (EXT3_NDIR_BLOCKS % bpp) ? 5 : 3;
int ret;
if (ext3_should_journal_data(inode))
ret = 3 * (bpp + indirects) + 2;
else
-@@ -2983,7 +2998,7 @@
+@@ -2972,7 +2987,7 @@
/* alloc blocks one by one */
for (i = 0; i < nblocks; i++) {
&bh_tmp, 1);
if (ret)
break;
-@@ -3059,7 +3074,7 @@
+@@ -3048,7 +3063,7 @@
if (blocks[i] != 0)
continue;
if (rc) {
printk(KERN_INFO "ext3_map_inode_page: error %d "
"allocating block %ld\n", rc, iblock);
-Index: linux-2.4.24/fs/ext3/Makefile
+Index: linux-2.4.24-b1_4/fs/ext3/Makefile
===================================================================
---- linux-2.4.24.orig/fs/ext3/Makefile 2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/fs/ext3/Makefile 2004-09-12 17:37:14.000000000 +0400
+--- linux-2.4.24-b1_4.orig/fs/ext3/Makefile 2004-09-30 14:04:27.000000000 +0800
++++ linux-2.4.24-b1_4/fs/ext3/Makefile 2004-09-30 14:04:33.000000000 +0800
@@ -13,7 +13,9 @@
obj-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o iopen.o \
obj-m := $(O_TARGET)
export-objs += xattr.o
-Index: linux-2.4.24/fs/ext3/super.c
+Index: linux-2.4.24-b1_4/fs/ext3/super.c
===================================================================
---- linux-2.4.24.orig/fs/ext3/super.c 2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/fs/ext3/super.c 2004-09-12 17:37:14.000000000 +0400
+--- linux-2.4.24-b1_4.orig/fs/ext3/super.c 2004-09-30 14:04:27.000000000 +0800
++++ linux-2.4.24-b1_4/fs/ext3/super.c 2004-09-30 14:04:33.000000000 +0800
@@ -530,6 +530,7 @@
int i;
return sb;
failed_mount3:
-Index: linux-2.4.24/fs/ext3/ioctl.c
+Index: linux-2.4.24-b1_4/fs/ext3/ioctl.c
===================================================================
---- linux-2.4.24.orig/fs/ext3/ioctl.c 2004-08-07 16:35:23.000000000 +0400
-+++ linux-2.4.24/fs/ext3/ioctl.c 2004-09-12 17:37:14.000000000 +0400
+--- linux-2.4.24-b1_4.orig/fs/ext3/ioctl.c 2004-09-30 14:04:22.000000000 +0800
++++ linux-2.4.24-b1_4/fs/ext3/ioctl.c 2004-09-30 14:04:33.000000000 +0800
@@ -174,6 +174,10 @@
return ret;
}
default:
return -ENOTTY;
}
-Index: linux-2.4.24/include/linux/ext3_fs.h
+Index: linux-2.4.24-b1_4/include/linux/ext3_fs.h
===================================================================
---- linux-2.4.24.orig/include/linux/ext3_fs.h 2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/include/linux/ext3_fs.h 2004-09-12 17:45:20.000000000 +0400
-@@ -185,6 +185,7 @@
+--- linux-2.4.24-b1_4.orig/include/linux/ext3_fs.h 2004-09-30 14:04:27.000000000 +0800
++++ linux-2.4.24-b1_4/include/linux/ext3_fs.h 2004-09-30 14:07:09.000000000 +0800
+@@ -184,6 +184,7 @@
+ #define EXT3_IMAGIC_FL 0x00002000 /* AFS directory */
#define EXT3_JOURNAL_DATA_FL 0x00004000 /* file data should be journaled */
- #define EXT3_EXTRA_ISIZE 0x00008000 /* inode has initialized i_extra_isize */
#define EXT3_RESERVED_FL 0x80000000 /* reserved for ext3 lib */
+#define EXT3_EXTENTS_FL 0x00080000 /* Inode uses extents */
#define EXT3_FL_USER_VISIBLE 0x00005FFF /* User visible flags */
#define EXT3_FL_USER_MODIFIABLE 0x000000FF /* User modifiable flags */
-@@ -209,6 +210,9 @@
+@@ -208,6 +209,9 @@
#ifdef CONFIG_JBD_DEBUG
#define EXT3_IOC_WAIT_FOR_READONLY _IOR('f', 99, long)
#endif
/*
* Structure of an inode on the disk
-@@ -328,6 +332,8 @@
- #define EXT3_MOUNT_IOPEN 0x8000 /* Allow access via iopen */
- #define EXT3_MOUNT_IOPEN_NOPRIV 0x10000 /* Make iopen world-readable */
+@@ -327,6 +331,8 @@
#define EXT3_MOUNT_ASYNCDEL 0x20000 /* Delayed deletion */
-+#define EXT3_MOUNT_EXTENTS 0x40000 /* Extents support */
-+#define EXT3_MOUNT_EXTDEBUG 0x80000 /* Extents debug */
+ #define EXT3_MOUNT_IOPEN 0x40000 /* Allow access via iopen */
+ #define EXT3_MOUNT_IOPEN_NOPRIV 0x80000 /* Make iopen world-readable */
++#define EXT3_MOUNT_EXTENTS 0x100000 /* Extents support */
++#define EXT3_MOUNT_EXTDEBUG 0x200000 /* Extents debug */
/* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
#ifndef _LINUX_EXT2_FS_H
-@@ -504,10 +510,12 @@
+@@ -503,10 +509,12 @@
#define EXT3_FEATURE_INCOMPAT_FILETYPE 0x0002
#define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */
#define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */
#define EXT3_FEATURE_RO_COMPAT_SUPP (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \
EXT3_FEATURE_RO_COMPAT_LARGE_FILE| \
EXT3_FEATURE_RO_COMPAT_BTREE_DIR)
-@@ -689,6 +697,7 @@
+@@ -688,6 +696,7 @@
extern unsigned long ext3_count_free (struct buffer_head *, unsigned);
/* inode.c */
extern int ext3_forget(handle_t *, int, struct inode *, struct buffer_head *, int);
extern struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *);
extern struct buffer_head * ext3_bread (handle_t *, struct inode *, int, int, int *);
-@@ -770,6 +779,14 @@
+@@ -769,6 +778,14 @@
extern struct inode_operations ext3_symlink_inode_operations;
extern struct inode_operations ext3_fast_symlink_inode_operations;
#endif /* __KERNEL__ */
-Index: linux-2.4.24/include/linux/ext3_extents.h
+Index: linux-2.4.24-b1_4/include/linux/ext3_extents.h
===================================================================
---- linux-2.4.24.orig/include/linux/ext3_extents.h 2003-01-30 13:24:37.000000000 +0300
-+++ linux-2.4.24/include/linux/ext3_extents.h 2004-09-12 17:37:14.000000000 +0400
+--- linux-2.4.24-b1_4.orig/include/linux/ext3_extents.h 2003-01-30 18:24:37.000000000 +0800
++++ linux-2.4.24-b1_4/include/linux/ext3_extents.h 2004-09-30 14:04:33.000000000 +0800
@@ -0,0 +1,237 @@
+/*
+ * Copyright (c) 2003, Cluster File Systems, Inc, info@clusterfs.com
+
+#endif /* _LINUX_EXT3_EXTENTS */
+
-Index: linux-2.4.24/include/linux/ext3_fs_i.h
+Index: linux-2.4.24-b1_4/include/linux/ext3_fs_i.h
===================================================================
---- linux-2.4.24.orig/include/linux/ext3_fs_i.h 2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/include/linux/ext3_fs_i.h 2004-09-12 17:37:14.000000000 +0400
+--- linux-2.4.24-b1_4.orig/include/linux/ext3_fs_i.h 2004-09-30 14:04:27.000000000 +0800
++++ linux-2.4.24-b1_4/include/linux/ext3_fs_i.h 2004-09-30 14:04:33.000000000 +0800
@@ -76,6 +76,8 @@
* by other means, so we have truncate_sem.
*/