staging: west bridge: cyasgadget, remove file system / vfs calls

This patch remove file system specific (fat_get_block) and vfs calls
from the cyasgadget driver. The current implementation expects user
space to write the file (open, seek to end, 1 byte write), followed by a
call to clear the dirty pages from the the page cache.

Signed-off-by: David Cross <david.cross@cypress.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
David Cross 2010-09-10 16:55:53 -07:00 committed by Greg Kroah-Hartman
parent 72bbd9bce4
commit 4c404487aa

View File

@ -1149,11 +1149,9 @@ static int cyasgadget_ioctl(
struct inode *inode = mapping->host;
struct inode *alloc_inode =
file_to_allocate->f_path.dentry->d_inode;
int cluster = 0;
uint32_t num_clusters = 0;
struct buffer_head bh;
struct kstat stat;
struct iattr alloc_iattr;
int nr_pages = 0;
int ret_stat = 0;
@ -1188,47 +1186,7 @@ static int cyasgadget_ioctl(
/* block size is arbitrary , we'll use sector size*/
bh.b_size = SECTOR_SIZE ;
#ifndef WESTBRIDGE_NDEBUG
cy_as_hal_print_message("%s: getting fat blocks %d "
"size of %d\n", __func__,
num_clusters, bh.b_size);
#endif
for (cluster = 0; cluster < num_clusters; cluster++) {
ret_stat = fat_get_block(inode,
cluster, &bh, 1);
if (ret_stat) {
cy_as_hal_print_message(
"%s: unable to get fat block, "
"ret_stat=0x%d\n",
__func__, ret_stat);
goto initsoj_safe_exit;
}
}
#ifndef WESTBRIDGE_NDEBUG
cy_as_hal_print_message("%s: allocated clusters "
"successfully (fat_get_block), check bmap..."
"\n", __func__);
#endif
alloc_iattr.ia_valid = ATTR_SIZE;
alloc_iattr.ia_size = k_d.num_bytes;
#ifndef WESTBRIDGE_NDEBUG
cy_as_hal_print_message("%s: calling fat_notify_change "
"(ia_valid:%d, ia_size:%d)\n", __func__,
alloc_iattr.ia_valid,
(int)alloc_iattr.ia_size);
#endif
/* adjust the filesize */
ret_stat = alloc_inode->i_op->setattr(
file_to_allocate->f_path.dentry, &alloc_iattr);
#ifndef WESTBRIDGE_NDEBUG
cy_as_hal_print_message("%s: fat_setattr() "
"returned 0x%x\n",
__func__, ret_stat);
#endif
/* clear dirty pages in page cache
* (if were any allocated) */