On Tue 15-12-09 01:43:18, Dmitry Monakhov wrote: > Jan Kara <jack@xxxxxxx> writes: > > > On Mon 14-12-09 15:21:16, Dmitry Monakhov wrote: > >> transfer_to[cnt] = dqget() may returns NULL due to IO error. > >> But NULL value in transfer_to[cnt] means a dquot transfer > >> optimization. So after operation succeed inode will have new > >> i_uid or i_gid but accounted to old dquot. This behaviour > >> is differ from dquot_initialize(). Let's handle IO error from > >> dqget() equally in all functions. > >> > >> In appliance to dquot_transfer() this means that we have to finish > >> operation regardless to IO errors from dqget(). > > In principle, the patch is fine (see just about a bug below). But even > > better would be if you converted dquot_transfer() to actually return real > > return codes (0, -EDQUOT, -EIO...) and make it return EIO in case of IO > Actually we have following set of errors (0, -EDQUOT, -EIO, -ENOMEM, -ENOSPC) > And ENOSPC is more realistic than EIO or ENOMEM. But from other point of view > quota is some sort of fs meta-data, so we can not let it just *silently* fail > because of some error as it done at the moment. Exactly. That's why I'd like to get this cleaned up in the long run... Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- 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