diff --git a/target/linux/generic-2.6/patches-2.6.28/512-yaffs-2.6.28.1-fix.patch b/target/linux/generic-2.6/patches-2.6.28/512-yaffs-2.6.28.1-fix.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8415b6c3189133f7a401054f552fd08a749d8129
--- /dev/null
+++ b/target/linux/generic-2.6/patches-2.6.28/512-yaffs-2.6.28.1-fix.patch
@@ -0,0 +1,11 @@
+--- a/fs/yaffs2/yaffs_fs.c
++++ b/fs/yaffs2/yaffs_fs.c
+@@ -745,7 +745,7 @@ static int yaffs_write_begin(struct file
+         
+ 	T(YAFFS_TRACE_OS, (KERN_DEBUG "start yaffs_write_begin\n"));
+ 	/* Get a page */
+-	pg = __grab_cache_page(mapping,index);
++	pg = grab_cache_page_write_begin(mapping, index, flags);
+ 	*pagep = pg;	
+ 	if(!pg){
+ 		ret =  -ENOMEM;