Writing to ramfs files with O_SYNC dereferences null in mpage_writepages(),
due to null a_ops->writepage.  The call path is

	generic_file_aio_write_nolock
	->generic_osync_inode
	  ->write_inode_now
	    ->__writeback_single_inode
	      ->__sync_single_inode
	        ->do_writepages
	          ->mpage_writepages

The best fix for this is to visit all ram-backed filesystems and give them a
no-op a_ops.writepages.  But baling out if the file is memory-backed is a
sufficient coverall.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/fs/fs-writeback.c |    3 +++
 1 files changed, 3 insertions(+)

diff -puN fs/fs-writeback.c~ramfs-o_sync-oops-fix fs/fs-writeback.c
--- 25/fs/fs-writeback.c~ramfs-o_sync-oops-fix	Tue Jun  1 15:42:14 2004
+++ 25-akpm/fs/fs-writeback.c	Tue Jun  1 16:04:04 2004
@@ -535,6 +535,9 @@ void write_inode_now(struct inode *inode
 		.sync_mode = WB_SYNC_ALL,
 	};
 
+	if (inode->i_mapping->backing_dev_info->memory_backed)
+		return;
+
 	spin_lock(&inode_lock);
 	__writeback_single_inode(inode, &wbc);
 	spin_unlock(&inode_lock);
_