On Sat, Jun 26, 2010 at 04:31:24PM -0400, Mike Snitzer wrote: > Allow discards to be passed through to a single device linear mapping. > Introduce DM_TARGET_SUPPORTS_DISCARDS target features flag that each > target must set once discard support is added. > > Verify table's underlying devices support discards prior to setting the > associated DM device as capable of discards (via QUEUE_FLAG_DISCARD). > > Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx> > --- > drivers/md/dm-linear.c | 1 + > drivers/md/dm-table.c | 51 ++++++++++++++++++++++++++++++++++ > drivers/md/dm.c | 60 ++++++++++++++++++++++++++++++++-------- > drivers/md/dm.h | 1 + > include/linux/device-mapper.h | 1 + > 5 files changed, 102 insertions(+), 12 deletions(-) > +static int device_discard_incapable(struct dm_target *ti, struct dm_dev *dev, > + sector_t start, sector_t len, void *data) > +{ > + struct block_device *bdev = dev->bdev; > + struct request_queue *q = bdev_get_queue(bdev); > + > + WARN_ON(!q); > + return (!q || !blk_queue_discard(q)); > +} How could a NULL queue happen here? Otherwise it looks okay to me, but my DM knowledge is rather limited. -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel