diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2008-05-13 17:17:18 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2008-05-13 17:17:18 +0000 |
commit | 3c143ca8593359aec9bdda7925d153246352c344 (patch) | |
tree | ae1d439029f41eabfe77a5ab3cd1214eda91abf2 | |
parent | 18cbe8770d5fdf3a81af527745cb96bfae0f492c (diff) | |
download | upstream-3c143ca8593359aec9bdda7925d153246352c344.tar.gz upstream-3c143ca8593359aec9bdda7925d153246352c344.tar.bz2 upstream-3c143ca8593359aec9bdda7925d153246352c344.zip |
fix mini_fo bug on 2.6.25
SVN-Revision: 11135
-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 0000000000..44e89f8a23 --- /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; |