The patch titled add check do_direct_IO() return val has been removed from the -mm tree. Its filename was add-check-do_direct_io-return-val.patch This patch was dropped because an updated version will be merged ------------------------------------------------------ Subject: add check do_direct_IO() return val From: Joe Jin <joe.jin@xxxxxxxxxx> At do_direct_IO(), sometimes dio_get_page() will return -EFAULT/-ENOMEM, according to orig source, it will go on left work. buf for dio_get_page() return a error will made many useful member of dio not initialized like dio->map_bh and others, at this point, kernel will panic. Signed-off-by: Joe Jin <joe.jin@xxxxxxxxxx> Cc: Badari Pulavarty <pbadari@xxxxxxxxxx> Cc: Zach Brown <zach.brown@xxxxxxxxxx> Cc: <stable@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/direct-io.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff -puN fs/direct-io.c~add-check-do_direct_io-return-val fs/direct-io.c --- a/fs/direct-io.c~add-check-do_direct_io-return-val +++ a/fs/direct-io.c @@ -1032,18 +1032,19 @@ direct_io_worker(int rw, struct kiocb *i blkbits); if (ret) { + if (ret == -ENOTBLK && (rw & WRITE)) { + /* + * The remaining part of the request will be + * be handled by buffered I/O when we return + */ + ret = 0; + break; + } dio_cleanup(dio); - break; + goto out; } } /* end iovec loop */ - if (ret == -ENOTBLK && (rw & WRITE)) { - /* - * The remaining part of the request will be - * be handled by buffered I/O when we return - */ - ret = 0; - } /* * There may be some unwritten disk at the end of a part-written * fs-block-sized block. Go zero that now. _ Patches currently in -mm which might be from joe.jin@xxxxxxxxxx are add-check-do_direct_io-return-val.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html