Skip to content

Commit

Permalink
smbfs: convert to new aops
Browse files Browse the repository at this point in the history
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Nick Piggin authored and Linus Torvalds committed Oct 16, 2007
1 parent 4899f9c commit fb53b30
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions fs/smbfs/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,29 +292,45 @@ smb_file_splice_read(struct file *file, loff_t *ppos,
* If the writer ends up delaying the write, the writer needs to
* increment the page use counts until he is done with the page.
*/
static int smb_prepare_write(struct file *file, struct page *page,
unsigned offset, unsigned to)
static int smb_write_begin(struct file *file, struct address_space *mapping,
loff_t pos, unsigned len, unsigned flags,
struct page **pagep, void **fsdata)
{
pgoff_t index = pos >> PAGE_CACHE_SHIFT;
*pagep = __grab_cache_page(mapping, index);
if (!*pagep)
return -ENOMEM;
return 0;
}

static int smb_commit_write(struct file *file, struct page *page,
unsigned offset, unsigned to)
static int smb_write_end(struct file *file, struct address_space *mapping,
loff_t pos, unsigned len, unsigned copied,
struct page *page, void *fsdata)
{
int status;
unsigned offset = pos & (PAGE_CACHE_SIZE - 1);

status = -EFAULT;
lock_kernel();
status = smb_updatepage(file, page, offset, to-offset);
status = smb_updatepage(file, page, offset, copied);
unlock_kernel();

if (!status) {
if (!PageUptodate(page) && copied == PAGE_CACHE_SIZE)
SetPageUptodate(page);
status = copied;
}

unlock_page(page);
page_cache_release(page);

return status;
}

const struct address_space_operations smb_file_aops = {
.readpage = smb_readpage,
.writepage = smb_writepage,
.prepare_write = smb_prepare_write,
.commit_write = smb_commit_write
.write_begin = smb_write_begin,
.write_end = smb_write_end,
};

/*
Expand Down

0 comments on commit fb53b30

Please sign in to comment.