diff options
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.patch | 78 |
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 91e8281..0000000 --- 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); |