Commit 4c404487 authored by David Cross's avatar David Cross Committed by Greg Kroah-Hartman
Browse files

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: default avatarDavid Cross <david.cross@cypress.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 72bbd9bc
Loading
Loading
Loading
Loading
+0 −42
Original line number Diff line number Diff line
@@ -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) */