On Mon, Mar 19, 2012 at 02:00:12PM +0000, Alasdair G Kergon wrote: > On Fri, Mar 16, 2012 at 03:22:36PM +0000, Joe Thornber wrote: > > This makes the free block counts more accurate. > > I'm not keen on this one: deferring it. > > > --- a/drivers/md/dm-thin.c > > +++ b/drivers/md/dm-thin.c > > @@ -2305,6 +2305,15 @@ static int pool_status(struct dm_target *ti, status_type_t type, > > (Used by dmsetup status and wait.) > > > + /* > > + * If we're in the middle of a transaction the free block > > + * counts can be quite out of date, so we do a quick > > + * commit. > > + */ > > + r = dm_pool_commit_metadata(pool->pmd); > > + if (r) > > + return r; > > + > > 1) If commit fails (repeatedly?) we still need to get the status. > > 2) Could the commit ever be too slow? (Or re-use NOFLUSH flag to skip it?) Agreed. The correct solution is to switch to a read-only mode if the commit fails, and thus never commit again. Commit does some io obviously; not sure what constitutes 'too slow'. - Joe -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel