RE: [PATCH 2/3] exfat: don't print error log in normal case

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

 



Hi Namjae,

> >
> >> > +	if (hint_clu == sbi->num_clusters) {
> >> >  		hint_clu = EXFAT_FIRST_CLUSTER;
> >> >  		p_chain->flags = ALLOC_FAT_CHAIN;
> >> >  	}
> > This is normal case, so let exfat rewind to the first cluster.
> >
> >> > +	/* check cluster validation */
> >> > +	if (!is_valid_cluster(sbi, hint_clu)) {
> >> > +		exfat_err(sb, "hint_cluster is invalid (%u)", hint_clu);
> >> > +		ret = -EIO;
> >> There is no problem with allocation when invalid hint clu.
> >> It is right to handle it as before instead returning -EIO.
> > We think all other case are real error case, so, error print and
> > return EIO.
> Why ?
> 
> > May I confirm is there any normal case in here?
> Could you please explain more ? I can't understand what you are saying.
> >

`hint_clu` has the following cases. 

1. Create a new cluster chain: `hint_clu == EXFAT_EOF_CLUSTER`
2. Append a new cluster to a cluster chain: `hint_clu = last_clu + 1`
  2.1 ` hint_clu == sbi-> num_clusters`
  2.2 `EXFAT_FIRST_CLUTER <= hint_clu < sbi-> num_clusters`

This commit splits case 2 to 2.1 and 2.2, and handles case 2.1 before calling is_valid_cluster().
So is_valid_cluster() is always true, even removing the check of is_valid_cluster() is fine.

But considering that this check can find bugs in future code updates, we keep this check and return -EIO.
If not returned EIO and continue, bug may not be revealed.




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

  Powered by Linux