aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-4.1
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2015-08-15 17:16:03 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2015-08-15 17:16:03 +0000
commitb1bd85c40eb5d22253fcc09c441abb50308ecd40 (patch)
treeb780ccb906996723106a614a5913c94611857fb4 /target/linux/generic/patches-4.1
parent1c66ebcd2db1e85590b11e0abc750eef25363328 (diff)
downloadupstream-b1bd85c40eb5d22253fcc09c441abb50308ecd40.tar.gz
upstream-b1bd85c40eb5d22253fcc09c441abb50308ecd40.tar.bz2
upstream-b1bd85c40eb5d22253fcc09c441abb50308ecd40.zip
kernel: yaffs2: update to version from 2015-06-02
In addition to the update this also fixes compile problems with kernel 4.1. This closes #20323. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 46609
Diffstat (limited to 'target/linux/generic/patches-4.1')
-rw-r--r--target/linux/generic/patches-4.1/501-yaffs-add-missing-flush-arguments.patch38
-rw-r--r--target/linux/generic/patches-4.1/503-yaffs-add-tags-9bytes-mount-option.patch12
-rw-r--r--target/linux/generic/patches-4.1/504-yaffs-3.16-new-fops.patch6
-rw-r--r--target/linux/generic/patches-4.1/505-yaffs-3.19-f_dentry-remove.patch95
4 files changed, 106 insertions, 45 deletions
diff --git a/target/linux/generic/patches-4.1/501-yaffs-add-missing-flush-arguments.patch b/target/linux/generic/patches-4.1/501-yaffs-add-missing-flush-arguments.patch
deleted file mode 100644
index d5ccc3e81e..0000000000
--- a/target/linux/generic/patches-4.1/501-yaffs-add-missing-flush-arguments.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/fs/yaffs2/yaffs_vfs.c
-+++ b/fs/yaffs2/yaffs_vfs.c
-@@ -738,7 +738,7 @@ static int yaffs_file_flush(struct file
-
- yaffs_gross_lock(dev);
-
-- yaffs_flush_file(obj, 1, 0);
-+ yaffs_flush_file(obj, 1, 0, 1);
-
- yaffs_gross_unlock(dev);
-
-@@ -768,7 +768,7 @@ static int yaffs_sync_object(struct file
- yaffs_trace(YAFFS_TRACE_OS | YAFFS_TRACE_SYNC,
- "yaffs_sync_object");
- yaffs_gross_lock(dev);
-- yaffs_flush_file(obj, 1, datasync);
-+ yaffs_flush_file(obj, 1, datasync, 1);
- yaffs_gross_unlock(dev);
- return 0;
- }
-@@ -2187,7 +2187,7 @@ static void yaffs_flush_inodes(struct su
- yaffs_trace(YAFFS_TRACE_OS,
- "flushing obj %d",
- obj->obj_id);
-- yaffs_flush_file(obj, 1, 0);
-+ yaffs_flush_file(obj, 1, 0, 1);
- }
- }
- }
-@@ -2200,7 +2200,7 @@ static void yaffs_flush_super(struct sup
-
- yaffs_flush_inodes(sb);
- yaffs_update_dirty_dirs(dev);
-- yaffs_flush_whole_cache(dev);
-+ yaffs_flush_whole_cache(dev, 1);
- if (do_checkpoint)
- yaffs_checkpoint_save(dev);
- }
diff --git a/target/linux/generic/patches-4.1/503-yaffs-add-tags-9bytes-mount-option.patch b/target/linux/generic/patches-4.1/503-yaffs-add-tags-9bytes-mount-option.patch
index 9ecaa72832..3f51bafc11 100644
--- a/target/linux/generic/patches-4.1/503-yaffs-add-tags-9bytes-mount-option.patch
+++ b/target/linux/generic/patches-4.1/503-yaffs-add-tags-9bytes-mount-option.patch
@@ -4,7 +4,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
--- a/fs/yaffs2/yaffs_vfs.c
+++ b/fs/yaffs2/yaffs_vfs.c
-@@ -2605,6 +2605,7 @@ static const struct super_operations yaf
+@@ -2644,6 +2644,7 @@ static const struct super_operations yaf
struct yaffs_options {
int inband_tags;
@@ -12,7 +12,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
int skip_checkpoint_read;
int skip_checkpoint_write;
int no_cache;
-@@ -2644,6 +2645,8 @@ static int yaffs_parse_options(struct ya
+@@ -2683,6 +2684,8 @@ static int yaffs_parse_options(struct ya
if (!strcmp(cur_opt, "inband-tags")) {
options->inband_tags = 1;
@@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
} else if (!strcmp(cur_opt, "tags-ecc-off")) {
options->tags_ecc_on = 0;
options->tags_ecc_overridden = 1;
-@@ -2717,7 +2720,6 @@ static struct super_block *yaffs_interna
+@@ -2756,7 +2759,6 @@ static struct super_block *yaffs_interna
struct yaffs_param *param;
int read_only = 0;
@@ -29,7 +29,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
struct yaffs_options options;
-@@ -2757,6 +2759,9 @@ static struct super_block *yaffs_interna
+@@ -2796,6 +2798,9 @@ static struct super_block *yaffs_interna
memset(&options, 0, sizeof(options));
@@ -39,7 +39,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
if (yaffs_parse_options(&options, data_str)) {
/* Option parsing failed */
return NULL;
-@@ -2790,17 +2795,22 @@ static struct super_block *yaffs_interna
+@@ -2829,17 +2834,22 @@ static struct super_block *yaffs_interna
}
/* Added NCB 26/5/2006 for completeness */
@@ -68,7 +68,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
return NULL;
/* OK, so if we got here, we have an MTD that's NAND and looks
-@@ -2857,7 +2867,8 @@ static struct super_block *yaffs_interna
+@@ -2896,7 +2906,8 @@ static struct super_block *yaffs_interna
param->n_reserved_blocks = 5;
param->n_caches = (options.no_cache) ? 0 : 10;
diff --git a/target/linux/generic/patches-4.1/504-yaffs-3.16-new-fops.patch b/target/linux/generic/patches-4.1/504-yaffs-3.16-new-fops.patch
index 11c6da0516..32b4fdfa39 100644
--- a/target/linux/generic/patches-4.1/504-yaffs-3.16-new-fops.patch
+++ b/target/linux/generic/patches-4.1/504-yaffs-3.16-new-fops.patch
@@ -1,15 +1,19 @@
--- a/fs/yaffs2/yaffs_vfs.c
+++ b/fs/yaffs2/yaffs_vfs.c
-@@ -774,7 +774,21 @@ static int yaffs_sync_object(struct file
+@@ -774,7 +774,25 @@ static int yaffs_sync_object(struct file
}
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 22))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0))
+static const struct file_operations yaffs_file_operations = {
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
+ .read = new_sync_read,
++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0) */
+ .read_iter = generic_file_read_iter,
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0))
+ .write = new_sync_write,
++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0) */
+ .write_iter = generic_file_write_iter,
+ .mmap = generic_file_mmap,
+ .flush = yaffs_file_flush,
diff --git a/target/linux/generic/patches-4.1/505-yaffs-3.19-f_dentry-remove.patch b/target/linux/generic/patches-4.1/505-yaffs-3.19-f_dentry-remove.patch
new file mode 100644
index 0000000000..0d4b6bf04f
--- /dev/null
+++ b/target/linux/generic/patches-4.1/505-yaffs-3.19-f_dentry-remove.patch
@@ -0,0 +1,95 @@
+--- a/fs/yaffs2/yaffs_vfs.c
++++ b/fs/yaffs2/yaffs_vfs.c
+@@ -283,7 +283,7 @@ static int yaffs_readpage_nolock(struct
+ (long long)pos,
+ (unsigned)PAGE_CACHE_SIZE);
+
+- obj = yaffs_dentry_to_obj(f->f_dentry);
++ obj = yaffs_dentry_to_obj(f->f_path.dentry);
+
+ dev = obj->my_dev;
+
+@@ -481,7 +481,7 @@ static ssize_t yaffs_hold_space(struct f
+
+ int n_free_chunks;
+
+- obj = yaffs_dentry_to_obj(f->f_dentry);
++ obj = yaffs_dentry_to_obj(f->f_path.dentry);
+
+ dev = obj->my_dev;
+
+@@ -499,7 +499,7 @@ static void yaffs_release_space(struct f
+ struct yaffs_obj *obj;
+ struct yaffs_dev *dev;
+
+- obj = yaffs_dentry_to_obj(f->f_dentry);
++ obj = yaffs_dentry_to_obj(f->f_path.dentry);
+
+ dev = obj->my_dev;
+
+@@ -591,7 +591,7 @@ static ssize_t yaffs_file_write(struct f
+ struct inode *inode;
+ struct yaffs_dev *dev;
+
+- obj = yaffs_dentry_to_obj(f->f_dentry);
++ obj = yaffs_dentry_to_obj(f->f_path.dentry);
+
+ if (!obj) {
+ yaffs_trace(YAFFS_TRACE_OS,
+@@ -603,7 +603,7 @@ static ssize_t yaffs_file_write(struct f
+
+ yaffs_gross_lock(dev);
+
+- inode = f->f_dentry->d_inode;
++ inode = f->f_path.dentry->d_inode;
+
+ if (!S_ISBLK(inode->i_mode) && f->f_flags & O_APPEND)
+ ipos = inode->i_size;
+@@ -727,7 +727,7 @@ static int yaffs_file_flush(struct file
+ static int yaffs_file_flush(struct file *file)
+ #endif
+ {
+- struct yaffs_obj *obj = yaffs_dentry_to_obj(file->f_dentry);
++ struct yaffs_obj *obj = yaffs_dentry_to_obj(file->f_path.dentry);
+
+ struct yaffs_dev *dev = obj->my_dev;
+
+@@ -1734,7 +1734,7 @@ static int yaffs_iterate(struct file *f,
+
+ char name[YAFFS_MAX_NAME_LENGTH + 1];
+
+- obj = yaffs_dentry_to_obj(f->f_dentry);
++ obj = yaffs_dentry_to_obj(f->f_path.dentry);
+ dev = obj->my_dev;
+
+ yaffs_gross_lock(dev);
+@@ -1798,14 +1798,14 @@ static int yaffs_readdir(struct file *f,
+ struct yaffs_obj *obj;
+ struct yaffs_dev *dev;
+ struct yaffs_search_context *sc;
+- struct inode *inode = f->f_dentry->d_inode;
++ struct inode *inode = f->f_path.dentry->d_inode;
+ unsigned long offset, curoffs;
+ struct yaffs_obj *l;
+ int ret_val = 0;
+
+ char name[YAFFS_MAX_NAME_LENGTH + 1];
+
+- obj = yaffs_dentry_to_obj(f->f_dentry);
++ obj = yaffs_dentry_to_obj(f->f_path.dentry);
+ dev = obj->my_dev;
+
+ yaffs_gross_lock(dev);
+@@ -1839,10 +1839,10 @@ static int yaffs_readdir(struct file *f,
+ if (offset == 1) {
+ yaffs_trace(YAFFS_TRACE_OS,
+ "yaffs_readdir: entry .. ino %d",
+- (int)f->f_dentry->d_parent->d_inode->i_ino);
++ (int)f->f_path.dentry->d_parent->d_inode->i_ino);
+ yaffs_gross_unlock(dev);
+ if (filldir(dirent, "..", 2, offset,
+- f->f_dentry->d_parent->d_inode->i_ino,
++ f->f_path.dentry->d_parent->d_inode->i_ino,
+ DT_DIR) < 0) {
+ yaffs_gross_lock(dev);
+ goto out;