From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: [PATCH] afs: use generic_ro_fops Date: Tue, 1 Nov 2005 00:37:39 +0100 Message-ID: <20051031233739.GC20976@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org Return-path: Received: from verein.lst.de ([213.95.11.210]:62630 "EHLO mail.lst.de") by vger.kernel.org with ESMTP id S964774AbVJaXhr (ORCPT ); Mon, 31 Oct 2005 18:37:47 -0500 To: akpm@osdl.org, dhowells@redhat.com Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org afs actually had a write method that returned different errors depending on whether some flag was set - better return the standard EINVAL errno. Signed-off-by: Christoph Hellwig Index: linux-2.6/fs/afs/file.c =================================================================== --- linux-2.6.orig/fs/afs/file.c 2005-10-31 14:59:17.000000000 +0100 +++ linux-2.6/fs/afs/file.c 2005-10-31 15:20:17.000000000 +0100 @@ -31,24 +31,10 @@ static int afs_file_invalidatepage(struct page *page, unsigned long offset); static int afs_file_releasepage(struct page *page, gfp_t gfp_flags); -static ssize_t afs_file_write(struct file *file, const char __user *buf, - size_t size, loff_t *off); - struct inode_operations afs_file_inode_operations = { .getattr = afs_inode_getattr, }; -struct file_operations afs_file_file_operations = { - .read = generic_file_read, - .write = afs_file_write, - .mmap = generic_file_mmap, -#if 0 - .open = afs_file_open, - .release = afs_file_release, - .fsync = afs_file_fsync, -#endif -}; - struct address_space_operations afs_fs_aops = { .readpage = afs_file_readpage, .sync_page = block_sync_page, @@ -59,22 +45,6 @@ /*****************************************************************************/ /* - * AFS file write - */ -static ssize_t afs_file_write(struct file *file, const char __user *buf, - size_t size, loff_t *off) -{ - struct afs_vnode *vnode; - - vnode = AFS_FS_I(file->f_dentry->d_inode); - if (vnode->flags & AFS_VNODE_DELETED) - return -ESTALE; - - return -EIO; -} /* end afs_file_write() */ - -/*****************************************************************************/ -/* * deal with notification that a page was read from the cache */ #ifdef AFS_CACHING_SUPPORT Index: linux-2.6/fs/afs/inode.c =================================================================== --- linux-2.6.orig/fs/afs/inode.c 2005-10-31 12:23:55.000000000 +0100 +++ linux-2.6/fs/afs/inode.c 2005-10-31 15:20:03.000000000 +0100 @@ -49,7 +49,7 @@ case AFS_FTYPE_FILE: inode->i_mode = S_IFREG | vnode->status.mode; inode->i_op = &afs_file_inode_operations; - inode->i_fop = &afs_file_file_operations; + inode->i_fop = &generic_ro_fops; break; case AFS_FTYPE_DIR: inode->i_mode = S_IFDIR | vnode->status.mode; Index: linux-2.6/fs/afs/internal.h =================================================================== --- linux-2.6.orig/fs/afs/internal.h 2005-10-31 12:23:55.000000000 +0100 +++ linux-2.6/fs/afs/internal.h 2005-10-31 15:20:07.000000000 +0100 @@ -71,7 +71,6 @@ */ extern struct address_space_operations afs_fs_aops; extern struct inode_operations afs_file_inode_operations; -extern struct file_operations afs_file_file_operations; #ifdef AFS_CACHING_SUPPORT extern int afs_cache_get_page_cookie(struct page *page,