Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a463ddd3 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Linus Torvalds
Browse files

[PATCH] afs: use generic_ro_fops



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: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent dc487002
Loading
Loading
Loading
Loading
+0 −30
Original line number Diff line number Diff line
@@ -31,24 +31,10 @@ static int afs_file_readpage(struct file *file, struct page *page);
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,
@@ -57,22 +43,6 @@ struct address_space_operations afs_fs_aops = {
	.invalidatepage	= afs_file_invalidatepage,
};

/*****************************************************************************/
/*
 * 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
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ static int afs_inode_map_status(struct afs_vnode *vnode)
	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;
+0 −1
Original line number Diff line number Diff line
@@ -71,7 +71,6 @@ extern struct file_operations afs_dir_file_operations;
 */
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,