diff options
Diffstat (limited to 'target/linux/generic/patches-3.8/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch')
| -rw-r--r-- | target/linux/generic/patches-3.8/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch | 72 | 
1 files changed, 72 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.8/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch b/target/linux/generic/patches-3.8/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch new file mode 100644 index 000000000..d283e8559 --- /dev/null +++ b/target/linux/generic/patches-3.8/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch @@ -0,0 +1,72 @@ +From cd6657c4bde20886b0805ea9f2cbac7ec25ac2e5 Mon Sep 17 00:00:00 2001 +From: Charles Manning <cdhmanning@gmail.com> +Date: Tue, 30 Nov 2010 16:01:28 +1300 +Subject: [PATCH 1/2] yaffs: Replace yaffs_dir_llseek with Linux generic + llseek + +commit ed8188fb7659cfb65b5adbe154d143190ade0324 upstream. + +There was not much point in having the yaffs version as it is +functionally equivalent to the kernel one. + +This also gets rid of using BKL in yaffs2. + +Signed-off-by: Charles Manning <cdhmanning@gmail.com> +--- + yaffs_vfs.c       |   30 +----------------------------- + yaffs_vfs_multi.c |   30 +----------------------------- + 2 files changed, 2 insertions(+), 58 deletions(-) + +--- a/fs/yaffs2/yaffs_vfs_glue.c ++++ b/fs/yaffs2/yaffs_vfs_glue.c +@@ -342,8 +342,6 @@ static int yaffs_follow_link(struct dent +  + static void yaffs_touch_super(yaffs_dev_t *dev); +  +-static loff_t yaffs_dir_llseek(struct file *file, loff_t offset, int origin); +- + static int yaffs_vfs_setattr(struct inode *, struct iattr *); +  +  +@@ -460,7 +458,7 @@ static const struct file_operations yaff + 	.read = generic_read_dir, + 	.readdir = yaffs_readdir, + 	.fsync = yaffs_sync_object, +-	.llseek = yaffs_dir_llseek, ++	.llseek = generic_file_llseek, + }; +  + static const struct super_operations yaffs_super_ops = { +@@ -1534,32 +1532,6 @@ static void yaffs_release_space(struct f + } +  +  +-static loff_t yaffs_dir_llseek(struct file *file, loff_t offset, int origin) +-{ +-	long long retval; +- +-	lock_kernel(); +- +-	switch (origin){ +-	case 2: +-		offset += i_size_read(file->f_path.dentry->d_inode); +-		break; +-	case 1: +-		offset += file->f_pos; +-	} +-	retval = -EINVAL; +- +-	if (offset >= 0){ +-		if (offset != file->f_pos) +-			file->f_pos = offset; +- +-		retval = offset; +-	} +-	unlock_kernel(); +-	return retval; +-} +- +- + static int yaffs_readdir(struct file *f, void *dirent, filldir_t filldir) + { + 	yaffs_obj_t *obj;  | 
