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 --- 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); _