On 2012-07-17 11:04 NeilBrown <neilb@xxxxxxx> Wrote: >On Mon, 16 Jul 2012 14:22:03 +0800 majianpeng <majianpeng@xxxxxxxxx> wrote: > >> For regular file, write operaion used blk_plug function.But for block >> file,write operation did not use blk_plug. >> This patch is also for write-cache mode for block-device. >> >> Signed-off-by: Jianpeng Ma <majianpeng@xxxxxxxxx> > >Reviewed-by: NeilBrown <neilb@xxxxxxx> > >Will you take this Jens? Though mail to you seem to be bouncing: > ><axboe@xxxxxxxxxxxx>: host mail.fusionio.com[10.101.1.19] said: 554 5.4.6 Hop > count exceeded - possible mail loop (in reply to end of DATA command) > >so I'm not sure you'll even see this :-( > >NeilBrown > >> --- >> fs/block_dev.c | 3 +++ >> 1 files changed, 3 insertions(+), 0 deletions(-) >> >> diff --git a/fs/block_dev.c b/fs/block_dev.c >> index c2bbe1f..cf10778 100644 >> --- a/fs/block_dev.c >> +++ b/fs/block_dev.c >> @@ -1579,9 +1579,11 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, >> { >> struct file *file = iocb->ki_filp; >> ssize_t ret; >> + struct blk_plug plug; >> >> BUG_ON(iocb->ki_pos != pos); >> >> + blk_start_plug(&plug); >> ret = __generic_file_aio_write(iocb, iov, nr_segs, &iocb->ki_pos); >> if (ret > 0 || ret == -EIOCBQUEUED) { >> ssize_t err; >> @@ -1590,6 +1592,7 @@ ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, >> if (err < 0 && ret > 0) >> ret = err; >> } >> + blk_finish_plug(&plug); >> return ret; >> } >> EXPORT_SYMBOL_GPL(blkdev_aio_write); > > How about this patch? apply or reject? Thanks!?韬{.n?????%??檩??w?{.n???{饼?z鳐??骅w*jg????????G??⒏⒎?:+v????????????"??????