From 654a44e57bf0bef74a7f19787ff7ed960064c2f8 Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 4 Jul 2010 15:36:46 +0000 Subject: [PATCH] [backfire] backport mini_fo fixes from r22057 git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@22059 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../217-mini_fo_dentry_check.patch | 48 +++++++++++++++++++ .../217-mini_fo_dentry_check.patch | 48 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 target/linux/generic-2.6/patches-2.6.30/217-mini_fo_dentry_check.patch create mode 100644 target/linux/generic-2.6/patches-2.6.32/217-mini_fo_dentry_check.patch diff --git a/target/linux/generic-2.6/patches-2.6.30/217-mini_fo_dentry_check.patch b/target/linux/generic-2.6/patches-2.6.30/217-mini_fo_dentry_check.patch new file mode 100644 index 000000000..cf53e4826 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.30/217-mini_fo_dentry_check.patch @@ -0,0 +1,48 @@ +--- a/fs/mini_fo/meta.c ++++ b/fs/mini_fo/meta.c +@@ -48,6 +48,9 @@ int meta_build_lists(dentry_t *dentry) + dtohd2(dentry), + strlen(META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ goto out_ok; ++ + if(!meta_dentry->d_inode) { + dput(meta_dentry); + goto out_ok; +@@ -433,6 +436,8 @@ int meta_write_d_entry(dentry_t *dentry, + meta_dentry = lookup_one_len(META_FILENAME, + dtohd2(dentry), strlen (META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ return PTR_ERR(meta_dentry); + + /* We need to create a META-file */ + if(!meta_dentry->d_inode) { +@@ -538,6 +543,8 @@ int meta_write_r_entry(dentry_t *dentry, + dtohd2(dentry), + strlen (META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ return PTR_ERR(meta_dentry); + + if(!meta_dentry->d_inode) { + /* We need to create a META-file */ +@@ -656,6 +663,8 @@ int meta_sync_d_list(dentry_t *dentry, i + dtohd2(dentry), + strlen(META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ return PTR_ERR(meta_dentry); + + if(!meta_dentry->d_inode) { + /* We need to create a META-file */ +@@ -803,6 +812,8 @@ int meta_sync_r_list(dentry_t *dentry, i + dtohd2(dentry), + strlen(META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ return PTR_ERR(meta_dentry); + + if(!meta_dentry->d_inode) { + /* We need to create a META-file */ diff --git a/target/linux/generic-2.6/patches-2.6.32/217-mini_fo_dentry_check.patch b/target/linux/generic-2.6/patches-2.6.32/217-mini_fo_dentry_check.patch new file mode 100644 index 000000000..cf53e4826 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.32/217-mini_fo_dentry_check.patch @@ -0,0 +1,48 @@ +--- a/fs/mini_fo/meta.c ++++ b/fs/mini_fo/meta.c +@@ -48,6 +48,9 @@ int meta_build_lists(dentry_t *dentry) + dtohd2(dentry), + strlen(META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ goto out_ok; ++ + if(!meta_dentry->d_inode) { + dput(meta_dentry); + goto out_ok; +@@ -433,6 +436,8 @@ int meta_write_d_entry(dentry_t *dentry, + meta_dentry = lookup_one_len(META_FILENAME, + dtohd2(dentry), strlen (META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ return PTR_ERR(meta_dentry); + + /* We need to create a META-file */ + if(!meta_dentry->d_inode) { +@@ -538,6 +543,8 @@ int meta_write_r_entry(dentry_t *dentry, + dtohd2(dentry), + strlen (META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ return PTR_ERR(meta_dentry); + + if(!meta_dentry->d_inode) { + /* We need to create a META-file */ +@@ -656,6 +663,8 @@ int meta_sync_d_list(dentry_t *dentry, i + dtohd2(dentry), + strlen(META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ return PTR_ERR(meta_dentry); + + if(!meta_dentry->d_inode) { + /* We need to create a META-file */ +@@ -803,6 +812,8 @@ int meta_sync_r_list(dentry_t *dentry, i + dtohd2(dentry), + strlen(META_FILENAME)); + mutex_unlock(&dtohd2(dentry)->d_inode->i_mutex); ++ if (IS_ERR(meta_dentry)) ++ return PTR_ERR(meta_dentry); + + if(!meta_dentry->d_inode) { + /* We need to create a META-file */