On Mon, Mar 20, 2017 at 04:11:24PM +0100, Max Reitz wrote: > On 20.03.2017 12:00, Stefan Hajnoczi wrote: > > On Mon, Mar 13, 2017 at 10:40:36PM +0100, Max Reitz wrote: > >> +static int raw_regular_truncate(int fd, BlockDriverState *bs, int64_t > >> offset, > > > > The presence of both a file descriptor and a BlockDriverState (actually > > it must be a BDRVRawState) arguments is unusual. It seems bs is needed > > for bdrv_getlength(). > > > > How about using fstat(fd, &st) and then dropping bs and create? > > Well, I could do that, but bdrv_getlength() is a bit simpler and I don't > see much of an issue with specifying both an fd and a bs.
Arguments that provide overlapping information make the function harder to understand and use correctly (there are combinations of these arguments that are invalid or don't make sense). Saving a few lines of code in the function implementation is a poor trade-off IMO. Stefan
signature.asc
Description: PGP signature