diff --git a/[refs] b/[refs] index 240b4f451cfc..df8f7d7dd83b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5dcccd8d7eae870d85c3f175fd0823d3da07d0e3 +refs/heads/master: fcb82f8835c1d71b4fe5de1d9894f45370f80dab diff --git a/trunk/fs/direct-io.c b/trunk/fs/direct-io.c index 8593f3dfd299..52bb2638f7ab 100644 --- a/trunk/fs/direct-io.c +++ b/trunk/fs/direct-io.c @@ -1106,7 +1106,7 @@ direct_io_worker(int rw, struct kiocb *iocb, struct inode *inode, spin_lock_irqsave(&dio->bio_lock, flags); ret2 = --dio->refcount; spin_unlock_irqrestore(&dio->bio_lock, flags); - BUG_ON(!dio->is_async && ret2 != 0); + if (ret2 == 0) { ret = dio_complete(dio, offset, ret); kfree(dio);