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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1730,7 +1730,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);
|
||||
@@ -1794,14 +1794,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);
|
||||
@@ -1835,10 +1835,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;
|
||||
Reference in New Issue
Block a user