On Wed, 15 Sep 2010, Mike Snitzer wrote: > On Wed, Sep 15, 2010 at 10:32 AM, Lukas Czerner <lczerner@xxxxxxxxxx> wrote: > > Since the discard may take quite long time, especially with really big > > extents (like the whole device for example), it would be nice to give to > > users the opportunity to abort it. This is especially useful for mkfs, > > when user can not know in advance how long it will take. > > > > In conjunction with mke2fs patch "Inform user about ongoing discard" > > it gives the user all the comfort of being informed about discard and > > being able to abort the operation. > > > > Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx> > > --- > > block/blk-lib.c | 5 +++++ > > 1 files changed, 5 insertions(+), 0 deletions(-) > > > > diff --git a/block/blk-lib.c b/block/blk-lib.c > > index d0216b9..4f54a1a 100644 > > --- a/block/blk-lib.c > > +++ b/block/blk-lib.c > > @@ -102,6 +102,11 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector, > > else if (!bio_flagged(bio, BIO_UPTODATE)) > > ret = -EIO; > > bio_put(bio); > > + > > + if (signal_pending(current)) { > > + ret = -ERESTARTSYS; > > + break; > > + } > > } > > return ret; > > out_free_page: > > Neil Brown recently suggested the use of fatal_signal_pending() rather > than signal_epnding() in another thread: > http://lkml.org/lkml/2010/9/12/232 > > I think Neil's suggestion applies here too? > > Mike Good to know, thanks a lot. I'll resend the patch shortly. -Lukas