Loading fs/afs/file.c +10 −4 Original line number Original line Diff line number Diff line Loading @@ -140,12 +140,11 @@ static void afs_file_readpage_read_complete(struct page *page, /* /* * read page from file, directory or symlink, given a key to use * read page from file, directory or symlink, given a key to use */ */ int afs_page_filler(void *data, struct page *page) static int __afs_page_filler(struct key *key, struct page *page) { { struct inode *inode = page->mapping->host; struct inode *inode = page->mapping->host; struct afs_vnode *vnode = AFS_FS_I(inode); struct afs_vnode *vnode = AFS_FS_I(inode); struct afs_read *req; struct afs_read *req; struct key *key = data; int ret; int ret; _enter("{%x},{%lu},{%lu}", key_serial(key), inode->i_ino, page->index); _enter("{%x},{%lu},{%lu}", key_serial(key), inode->i_ino, page->index); Loading Loading @@ -249,6 +248,13 @@ int afs_page_filler(void *data, struct page *page) return ret; return ret; } } int afs_page_filler(struct file *data, struct page *page) { struct key *key = (struct key *)data; return __afs_page_filler(key, page); } /* /* * read page from file, directory or symlink, given a file to nominate the key * read page from file, directory or symlink, given a file to nominate the key * to be used * to be used Loading @@ -261,14 +267,14 @@ static int afs_readpage(struct file *file, struct page *page) if (file) { if (file) { key = file->private_data; key = file->private_data; ASSERT(key != NULL); ASSERT(key != NULL); ret = afs_page_filler(key, page); ret = __afs_page_filler(key, page); } else { } else { struct inode *inode = page->mapping->host; struct inode *inode = page->mapping->host; key = afs_request_key(AFS_FS_S(inode->i_sb)->volume->cell); key = afs_request_key(AFS_FS_S(inode->i_sb)->volume->cell); if (IS_ERR(key)) { if (IS_ERR(key)) { ret = PTR_ERR(key); ret = PTR_ERR(key); } else { } else { ret = afs_page_filler(key, page); ret = __afs_page_filler(key, page); key_put(key); key_put(key); } } } } Loading fs/afs/internal.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -485,7 +485,7 @@ extern const struct file_operations afs_file_operations; extern int afs_open(struct inode *, struct file *); extern int afs_open(struct inode *, struct file *); extern int afs_release(struct inode *, struct file *); extern int afs_release(struct inode *, struct file *); extern int afs_page_filler(void *, struct page *); extern int afs_page_filler(struct file *, struct page *); extern void afs_put_read(struct afs_read *); extern void afs_put_read(struct afs_read *); /* /* Loading Loading
fs/afs/file.c +10 −4 Original line number Original line Diff line number Diff line Loading @@ -140,12 +140,11 @@ static void afs_file_readpage_read_complete(struct page *page, /* /* * read page from file, directory or symlink, given a key to use * read page from file, directory or symlink, given a key to use */ */ int afs_page_filler(void *data, struct page *page) static int __afs_page_filler(struct key *key, struct page *page) { { struct inode *inode = page->mapping->host; struct inode *inode = page->mapping->host; struct afs_vnode *vnode = AFS_FS_I(inode); struct afs_vnode *vnode = AFS_FS_I(inode); struct afs_read *req; struct afs_read *req; struct key *key = data; int ret; int ret; _enter("{%x},{%lu},{%lu}", key_serial(key), inode->i_ino, page->index); _enter("{%x},{%lu},{%lu}", key_serial(key), inode->i_ino, page->index); Loading Loading @@ -249,6 +248,13 @@ int afs_page_filler(void *data, struct page *page) return ret; return ret; } } int afs_page_filler(struct file *data, struct page *page) { struct key *key = (struct key *)data; return __afs_page_filler(key, page); } /* /* * read page from file, directory or symlink, given a file to nominate the key * read page from file, directory or symlink, given a file to nominate the key * to be used * to be used Loading @@ -261,14 +267,14 @@ static int afs_readpage(struct file *file, struct page *page) if (file) { if (file) { key = file->private_data; key = file->private_data; ASSERT(key != NULL); ASSERT(key != NULL); ret = afs_page_filler(key, page); ret = __afs_page_filler(key, page); } else { } else { struct inode *inode = page->mapping->host; struct inode *inode = page->mapping->host; key = afs_request_key(AFS_FS_S(inode->i_sb)->volume->cell); key = afs_request_key(AFS_FS_S(inode->i_sb)->volume->cell); if (IS_ERR(key)) { if (IS_ERR(key)) { ret = PTR_ERR(key); ret = PTR_ERR(key); } else { } else { ret = afs_page_filler(key, page); ret = __afs_page_filler(key, page); key_put(key); key_put(key); } } } } Loading
fs/afs/internal.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -485,7 +485,7 @@ extern const struct file_operations afs_file_operations; extern int afs_open(struct inode *, struct file *); extern int afs_open(struct inode *, struct file *); extern int afs_release(struct inode *, struct file *); extern int afs_release(struct inode *, struct file *); extern int afs_page_filler(void *, struct page *); extern int afs_page_filler(struct file *, struct page *); extern void afs_put_read(struct afs_read *); extern void afs_put_read(struct afs_read *); /* /* Loading