Re: [PATCH v7 3/4] fat: permit to return phy block number by fibmap in fallocated region

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Namjae Jeon <namjae.jeon@xxxxxxxxxxx> writes:

Hi,

Sorry for long delay.

> +static int fat_get_block_bmap(struct inode *inode, sector_t iblock,
> +		struct buffer_head *bh_result, int create)
> +{
> +	struct super_block *sb = inode->i_sb;
> +	unsigned long max_blocks = bh_result->b_size >> inode->i_blkbits;
> +	int err;
> +	sector_t bmap, last_block;
> +	unsigned long mapped_blocks;
> +
> +	BUG_ON(create != 0);
> +
> +	last_block = inode->i_blocks >> (sb->s_blocksize_bits - 9);
> +
> +	if (iblock >= last_block)
> +		return 0;
> +
> +	err = fat_get_mapped_cluster(inode, iblock, last_block, &mapped_blocks,
> +		&bmap);
> +	if (err)
> +		return err;

Probably, we are missing rootdir check here? If it is fat12/fat16,
rootdir has to treat as special, because it doesn't have cluster chain.

So, how about to pass flags to fat_bmap()? For example,

	/* Check EOF for excluding bmap() ioctl path */
	static int is_exceed_eof()
	{
		...
	}

	fat_bmap(..., from_bmap)
	{
		...

		if (!from_bmap && is_exceed_eof(inode, sector, create))
			return 0;

		...
	}

or such.

Thanks.
-- 
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux