summaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.12/506-yaffs-3.2-dont-use-i_nlink-directly.patch
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2013-12-16 07:51:19 +0000
committerGabor Juhos <juhosg@openwrt.org>2013-12-16 07:51:19 +0000
commit7e3644d3cf37cd24c3a295825200743123acbd91 (patch)
tree025ced24d4bc8a7632dcfc7b4f5d06b690fe6367 /target/linux/generic/patches-3.12/506-yaffs-3.2-dont-use-i_nlink-directly.patch
parent85755deaf66746d5e2d65aedfda2352d566e9a53 (diff)
downloadmaster-31e0f0ae-7e3644d3cf37cd24c3a295825200743123acbd91.tar.gz
master-31e0f0ae-7e3644d3cf37cd24c3a295825200743123acbd91.tar.bz2
master-31e0f0ae-7e3644d3cf37cd24c3a295825200743123acbd91.zip
kernel: update yaffs code
Use the latest version of the yaffs code. Fetched from the yaffs2 git tree and it is based on the following commit: commit bc76682d93955cfb33051beb503ad9f8a5450578 Merge: 3a8580e ffa781d Author: Charles Manning <cdhmanning@gmail.com> Date: Thu Jul 11 17:46:25 2013 +1200 Merge branch 'master' of ssh://www.aleph1.co.uk/home/aleph1/git/yaffs2 Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 39084
Diffstat (limited to 'target/linux/generic/patches-3.12/506-yaffs-3.2-dont-use-i_nlink-directly.patch')
-rw-r--r--target/linux/generic/patches-3.12/506-yaffs-3.2-dont-use-i_nlink-directly.patch78
1 files changed, 0 insertions, 78 deletions
diff --git a/target/linux/generic/patches-3.12/506-yaffs-3.2-dont-use-i_nlink-directly.patch b/target/linux/generic/patches-3.12/506-yaffs-3.2-dont-use-i_nlink-directly.patch
deleted file mode 100644
index 91e8281196..0000000000
--- a/target/linux/generic/patches-3.12/506-yaffs-3.2-dont-use-i_nlink-directly.patch
+++ /dev/null
@@ -1,78 +0,0 @@
---- a/fs/yaffs2/yaffs_vfs_glue.c
-+++ b/fs/yaffs2/yaffs_vfs_glue.c
-@@ -220,6 +220,29 @@ static struct inode *yaffs_iget(struct s
- #define yaffs_SuperToDevice(sb) ((yaffs_dev_t *)sb->u.generic_sbp)
- #endif
-
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 2, 0))
-+static inline void yaffs_set_nlink(struct inode *inode, unsigned int nlink)
-+{
-+ set_nlink(inode, nlink);
-+}
-+
-+static inline void yaffs_dec_link_count(struct inode *inode)
-+{
-+ inode_dec_link_count(inode);
-+}
-+#else
-+static inline void yaffs_set_nlink(struct inode *inode, unsigned int nlink)
-+{
-+ inode->i_nlink = nlink;
-+}
-+
-+static inline void yaffs_dec_link_count(struct inode *inode)
-+{
-+ inode->i_nlink--;
-+ mark_inode_dirty(inode)
-+}
-+#endif
-+
-
- #define update_dir_time(dir) do {\
- (dir)->i_ctime = (dir)->i_mtime = CURRENT_TIME; \
-@@ -1362,7 +1385,7 @@ static void yaffs_fill_inode_from_obj(st
- inode->i_size = yaffs_get_obj_length(obj);
- inode->i_blocks = (inode->i_size + 511) >> 9;
-
-- inode->i_nlink = yaffs_get_obj_link_count(obj);
-+ yaffs_set_nlink(inode, yaffs_get_obj_link_count(obj));
-
- T(YAFFS_TRACE_OS,
- (TSTR("yaffs_fill_inode mode %x uid %d gid %d size %d count %d\n"),
-@@ -1784,10 +1807,9 @@ static int yaffs_unlink(struct inode *di
- retVal = yaffs_unlinker(obj, dentry->d_name.name);
-
- if (retVal == YAFFS_OK) {
-- dentry->d_inode->i_nlink--;
-+ yaffs_dec_link_count(dentry->d_inode);
- dir->i_version++;
- yaffs_gross_unlock(dev);
-- mark_inode_dirty(dentry->d_inode);
- update_dir_time(dir);
- return 0;
- }
-@@ -1818,7 +1840,8 @@ static int yaffs_link(struct dentry *old
- obj);
-
- if (link) {
-- old_dentry->d_inode->i_nlink = yaffs_get_obj_link_count(obj);
-+ yaffs_set_nlink(old_dentry->d_inode,
-+ yaffs_get_obj_link_count(obj));
- d_instantiate(dentry, old_dentry->d_inode);
- atomic_inc(&old_dentry->d_inode->i_count);
- T(YAFFS_TRACE_OS,
-@@ -1937,11 +1960,9 @@ static int yaffs_rename(struct inode *ol
- yaffs_gross_unlock(dev);
-
- if (retVal == YAFFS_OK) {
-- if (target) {
-- new_dentry->d_inode->i_nlink--;
-- mark_inode_dirty(new_dentry->d_inode);
-- }
--
-+ if (target)
-+ yaffs_dec_link_count(new_dentry->d_inode);
-+
- update_dir_time(old_dir);
- if(old_dir != new_dir)
- update_dir_time(new_dir);