include/linux/ext3_fs_i.h | 6
6 files changed, 500 insertions(+), 109 deletions(-)
-Index: linux-2.4.24/fs/ext3/namei.c
+Index: lum/fs/ext3/namei.c
===================================================================
---- linux-2.4.24.orig/fs/ext3/namei.c 2004-05-22 12:08:41.000000000 +0800
-+++ linux-2.4.24/fs/ext3/namei.c 2004-05-22 12:11:40.000000000 +0800
+--- lum.orig/fs/ext3/namei.c 2004-06-03 16:32:28.000000000 -0400
++++ lum/fs/ext3/namei.c 2004-06-03 16:45:45.000000000 -0400
@@ -51,6 +51,9 @@
{
struct buffer_head *bh;
+ (struct ext3_dir_entry_2 *) (from + map->offs);
rec_len = EXT3_DIR_REC_LEN(de->name_len);
memcpy (to, de, rec_len);
- ((struct ext3_dir_entry_2 *) to)->rec_len = rec_len;
+ ((struct ext3_dir_entry_2 *)to)->rec_len = cpu_to_le16(rec_len);
@@ -987,7 +1150,8 @@
static struct ext3_dir_entry_2* dx_pack_dirents(char *base, int size)
if (bh)
brelse(bh);
dx_release(frames);
-@@ -1901,6 +2220,7 @@
+@@ -1905,6 +2224,7 @@
struct buffer_head * bh;
struct ext3_dir_entry_2 * de;
handle_t *handle;
handle = ext3_journal_start(dir, EXT3_DELETE_TRANS_BLOCKS);
if (IS_ERR(handle)) {
-@@ -1908,7 +2228,7 @@
+@@ -1912,7 +2232,7 @@
}
retval = -ENOENT;
if (!bh)
goto end_rmdir;
-@@ -1919,14 +2239,19 @@
+@@ -1923,14 +2243,19 @@
DQUOT_INIT(inode);
retval = -EIO;
if (retval)
goto end_rmdir;
if (inode->i_nlink != 2)
-@@ -1985,6 +2310,7 @@
+@@ -1989,6 +2314,7 @@
struct buffer_head * bh;
struct ext3_dir_entry_2 * de;
handle_t *handle;
handle = ext3_journal_start(dir, EXT3_DELETE_TRANS_BLOCKS);
if (IS_ERR(handle)) {
-@@ -1995,7 +2321,7 @@
+@@ -1999,7 +2325,7 @@
handle->h_sync = 1;
retval = -ENOENT;
if (!bh)
goto end_unlink;
-@@ -2003,8 +2329,10 @@
+@@ -2007,8 +2333,10 @@
DQUOT_INIT(inode);
retval = -EIO;
if (!inode->i_nlink) {
ext3_warning (inode->i_sb, "ext3_unlink",
-@@ -2013,6 +2341,7 @@
+@@ -2017,6 +2345,7 @@
inode->i_nlink = 1;
}
retval = ext3_delete_entry(handle, dir, de, bh);
if (retval)
goto end_unlink;
dir->i_ctime = dir->i_mtime = CURRENT_TIME;
-@@ -2151,6 +2480,7 @@
+@@ -2155,6 +2484,7 @@
struct buffer_head * old_bh, * new_bh, * dir_bh;
struct ext3_dir_entry_2 * old_de, * new_de;
int retval;
old_bh = new_bh = dir_bh = NULL;
-@@ -2163,7 +2493,10 @@
+@@ -2167,7 +2497,10 @@
if (IS_SYNC(old_dir) || IS_SYNC(new_dir))
handle->h_sync = 1;
/*
* Check for inode number is _not_ due to possible IO errors.
* We might rmdir the source, keep it as pwd of some process
-@@ -2176,7 +2509,7 @@
+@@ -2180,7 +2513,7 @@
goto end_rename;
new_inode = new_dentry->d_inode;
if (new_bh) {
if (!new_inode) {
brelse (new_bh);
-@@ -2239,7 +2572,7 @@
+@@ -2247,7 +2580,7 @@
struct buffer_head *old_bh2;
struct ext3_dir_entry_2 *old_de2;
-
+
- old_bh2 = ext3_find_entry(old_dentry, &old_de2);
+ old_bh2 = ext3_find_entry(old_dentry, &old_de2, 1, &lock3 /* FIXME */);
if (old_bh2) {
retval = ext3_delete_entry(handle, old_dir,
old_de2, old_bh2);
-@@ -2282,6 +2615,14 @@
+@@ -2290,6 +2623,14 @@
retval = 0;
end_rename:
brelse (dir_bh);
brelse (old_bh);
brelse (new_bh);
-@@ -2290,6 +2631,29 @@
+@@ -2298,6 +2639,29 @@
}
/*
* directories can handle most operations...
*/
struct inode_operations ext3_dir_inode_operations = {
-Index: linux-2.4.24/fs/ext3/super.c
+Index: lum/fs/ext3/super.c
===================================================================
---- linux-2.4.24.orig/fs/ext3/super.c 2004-05-22 12:09:38.000000000 +0800
-+++ linux-2.4.24/fs/ext3/super.c 2004-05-22 12:11:40.000000000 +0800
+--- lum.orig/fs/ext3/super.c 2004-06-03 16:32:28.000000000 -0400
++++ lum/fs/ext3/super.c 2004-06-03 16:37:15.000000000 -0400
@@ -733,6 +733,9 @@
if (want_numeric(value, "sb", sb_block))
return 0;
return sb;
failed_mount3:
-Index: linux-2.4.24/fs/ext3/inode.c
+Index: lum/fs/ext3/inode.c
===================================================================
---- linux-2.4.24.orig/fs/ext3/inode.c 2004-05-22 12:09:48.000000000 +0800
-+++ linux-2.4.24/fs/ext3/inode.c 2004-05-22 12:11:40.000000000 +0800
+--- lum.orig/fs/ext3/inode.c 2004-06-03 16:32:29.000000000 -0400
++++ lum/fs/ext3/inode.c 2004-06-03 16:37:15.000000000 -0400
@@ -2251,6 +2251,9 @@
} else if (S_ISDIR(inode->i_mode)) {
inode->i_op = &ext3_dir_inode_operations;
} else if (S_ISLNK(inode->i_mode)) {
if (ext3_inode_is_fast_symlink(inode))
inode->i_op = &ext3_fast_symlink_inode_operations;
-Index: linux-2.4.24/fs/ext3/ialloc.c
+Index: lum/fs/ext3/ialloc.c
===================================================================
---- linux-2.4.24.orig/fs/ext3/ialloc.c 2004-05-22 12:09:38.000000000 +0800
-+++ linux-2.4.24/fs/ext3/ialloc.c 2004-05-22 12:11:40.000000000 +0800
+--- lum.orig/fs/ext3/ialloc.c 2004-06-03 16:32:28.000000000 -0400
++++ lum/fs/ext3/ialloc.c 2004-06-03 16:37:15.000000000 -0400
@@ -609,6 +609,9 @@
return ERR_PTR(-EDQUOT);
}
return inode;
fail:
-Index: linux-2.4.24/include/linux/ext3_fs.h
+Index: lum/include/linux/ext3_fs.h
===================================================================
---- linux-2.4.24.orig/include/linux/ext3_fs.h 2004-05-22 12:09:42.000000000 +0800
-+++ linux-2.4.24/include/linux/ext3_fs.h 2004-05-22 12:11:41.000000000 +0800
+--- lum.orig/include/linux/ext3_fs.h 2004-06-03 16:32:28.000000000 -0400
++++ lum/include/linux/ext3_fs.h 2004-06-03 16:37:15.000000000 -0400
@@ -320,6 +320,7 @@
/*
* Mount flags
#define EXT3_MOUNT_CHECK 0x0001 /* Do mount-time checks */
#define EXT3_MOUNT_GRPID 0x0004 /* Create files with directory's group */
#define EXT3_MOUNT_DEBUG 0x0008 /* Some debugging messages */
-Index: linux-2.4.24/include/linux/ext3_fs_i.h
+Index: lum/include/linux/ext3_fs_i.h
===================================================================
---- linux-2.4.24.orig/include/linux/ext3_fs_i.h 2004-05-22 12:09:38.000000000 +0800
-+++ linux-2.4.24/include/linux/ext3_fs_i.h 2004-05-22 12:13:54.000000000 +0800
+--- lum.orig/include/linux/ext3_fs_i.h 2004-06-03 16:32:28.000000000 -0400
++++ lum/include/linux/ext3_fs_i.h 2004-06-03 16:37:15.000000000 -0400
@@ -17,6 +17,7 @@
#define _LINUX_EXT3_FS_I