summaryrefslogtreecommitdiff
path: root/target/linux/generic/patches-3.6/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-3.6/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch')
-rw-r--r--target/linux/generic/patches-3.6/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.6/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch b/target/linux/generic/patches-3.6/503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch
new file mode 100644
index 0000000..d283e85
--- /dev/null
+++ b/target/linux/generic/patches-3.6/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;