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;
/* 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) */