diff options
| author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-05-13 17:17:18 +0000 | 
|---|---|---|
| committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-05-13 17:17:18 +0000 | 
| commit | 8cbfca3491ce6a3944aff63c110649c518f9b5af (patch) | |
| tree | c8b84edee6d90440123e3fa2205fcf6064baa776 /target/linux | |
| parent | 5225a2441f410f4c0e7c8fb7871cc38d748acc38 (diff) | |
[kernel] fix mini_fo bug on 2.6.25
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11135 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux')
| -rw-r--r-- | target/linux/generic-2.6/patches-2.6.25/211-mini_fo_2.6.25_dentry_open_war.patch | 68 | 
1 files changed, 68 insertions, 0 deletions
diff --git a/target/linux/generic-2.6/patches-2.6.25/211-mini_fo_2.6.25_dentry_open_war.patch b/target/linux/generic-2.6/patches-2.6.25/211-mini_fo_2.6.25_dentry_open_war.patch new file mode 100644 index 000000000..44e89f8a2 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.25/211-mini_fo_2.6.25_dentry_open_war.patch @@ -0,0 +1,68 @@ +Index: linux-2.6.25.1/fs/mini_fo/meta.c +=================================================================== +--- linux-2.6.25.1.orig/fs/mini_fo/meta.c ++++ linux-2.6.25.1/fs/mini_fo/meta.c +@@ -442,6 +442,11 @@ int meta_write_d_entry(dentry_t *dentry, + 			   S_IRUSR | S_IWUSR); + #endif + 	} ++ ++	/* $%& err, is this correct? */ ++	meta_mnt = stopd(dentry->d_inode->i_sb)->hidden_mnt2; ++	mntget(meta_mnt); ++ +         /* open META-file for writing */ +         meta_file = dentry_open(meta_dentry, meta_mnt, 0x1); +         if(!meta_file || IS_ERR(meta_file)) { +@@ -535,6 +540,11 @@ int meta_write_r_entry(dentry_t *dentry, + 			   meta_dentry, S_IRUSR | S_IWUSR); + #endif + 	} ++ ++	/* $%& err, is this correct? */ ++	meta_mnt = stopd(dentry->d_inode->i_sb)->hidden_mnt2; ++	mntget(meta_mnt); ++ +         /* open META-file for writing */ +         meta_file = dentry_open(meta_dentry, meta_mnt, 0x1); +         if(!meta_file || IS_ERR(meta_file)) { +@@ -671,14 +681,16 @@ int meta_sync_d_list(dentry_t *dentry, i + 		} + 	} +  ++	/* $%& err, is this correct? */ ++	meta_mnt = stopd(dentry->d_inode->i_sb)->hidden_mnt2; ++	mntget(meta_mnt); ++ +         /* open META-file for writing */ +         meta_file = dentry_open(meta_dentry, meta_mnt, 0x1); +         if(!meta_file || IS_ERR(meta_file)) { +                 printk(KERN_CRIT "mini_fo: meta_sync_d_list: \ +                                   ERROR opening meta file.\n"); +-		/* we don't mntget so we dont't mntput (for now) +-		 * mntput(meta_mnt); +-		 */ ++		mntput(meta_mnt); + 		dput(meta_dentry); + 		err = -1; +                 goto out; +@@ -811,14 +823,16 @@ int meta_sync_r_list(dentry_t *dentry, i + 		} + 	} +  ++	/* $%& err, is this correct? */ ++	meta_mnt = stopd(dentry->d_inode->i_sb)->hidden_mnt2; ++	mntget(meta_mnt); ++ +         /* open META-file for writing */ +         meta_file = dentry_open(meta_dentry, meta_mnt, 0x1); +         if(!meta_file || IS_ERR(meta_file)) { +                 printk(KERN_CRIT "mini_fo: meta_sync_r_list: \ +                                   ERROR opening meta file.\n"); +-		/* we don't mntget so we dont't mntput (for now) +-		 * mntput(meta_mnt); +-		 */ ++		mntput(meta_mnt); + 		dput(meta_dentry); + 		err = -1; +                 goto out;  | 
