diff for duplicates of <1460739288.3012.3.camel@intel.com> diff --git a/a/1.txt b/N1/1.txt index 16ad5a9..590df31 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -17,7 +17,7 @@ On Fri, 2016-04-15 at 12:11 -0400, Jeff Moyer wrote: > > + if (IS_DAX(inode)) { > > + ret = dax_do_io(iocb, inode, iter, offset, > > blkdev_get_block, -> >  NULL, DIO_SKIP_DIO_COUNT); +> > NULL, DIO_SKIP_DIO_COUNT); > > - return __blockdev_direct_IO(iocb, inode, I_BDEV(inode), > > iter, offset, > > + if (ret == -EIO && (iov_iter_rw(iter) == WRITE)) @@ -28,23 +28,27 @@ On Fri, 2016-04-15 at 12:11 -0400, Jeff Moyer wrote: > > + > > + ret = __blockdev_direct_IO(iocb, inode, I_BDEV(inode), > > iter, offset, -> >      blkdev_get_block, NULL, NULL, -> >      DIO_SKIP_DIO_COUNT); +> > blkdev_get_block, NULL, NULL, +> > DIO_SKIP_DIO_COUNT); > > + if (ret < 0 && ret_saved) > > + return ret_saved; > > + -> Hmm, did you just break async DIO?  I think you did!  :) +> Hmm, did you just break async DIO? I think you did! :) > __blockdev_direct_IO can return -EIOCBQUEUED, and you've now turned > that -> into -EIO.  Really, I don't see a reason to save that first -> -EIO.  The +> into -EIO. Really, I don't see a reason to save that first +> -EIO. The > same applies to all instances in this patch. The reason I saved it was if __blockdev_direct_IO fails for some reason, we should return the original cause o the error, which was an EIO.. i.e. we shouldn't be hiding the EIO if the direct_IO fails with something else.. -But, how does _EIOCBQUEUED work? Maybe we need an exception for it? +But, how does _EIOCBQUEUED work? Maybe we need an exception for it? Thanks, - -VishalN§²æìr¸zǧu©²Æ {\béì¹»\x1c®&Þ)îÆi¢Ø^nr¶Ý¢j$½§$¢¸\x05¢¹¨è§~'.)îÄÃ,yèm¶ÿÃ\f%{±j+ðèצj)Z· + -Vishal +_______________________________________________ +xfs mailing list +xfs@oss.sgi.com +http://oss.sgi.com/mailman/listinfo/xfs diff --git a/a/content_digest b/N1/content_digest index ce01ba8..4fba131 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -5,21 +5,20 @@ "Subject\0Re: [PATCH v2 5/5] dax: handle media errors in dax_do_io\0" "Date\0Fri, 15 Apr 2016 16:54:48 +0000\0" "To\0jmoyer@redhat.com <jmoyer@redhat.com>\0" - "Cc\0Wilcox" - Matthew R <matthew.r.wilcox@intel.com> - linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> - linux-block@vger.kernel.org <linux-block@vger.kernel.org> - hch@infradead.org <hch@infradead.org> + "Cc\0hch@infradead.org <hch@infradead.org>" + jack@suse.cz <jack@suse.cz> + axboe@fb.com <axboe@fb.com> linux-nvdimm@ml01.01.org <linux-nvdimm@ml01.01.org> + linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> xfs@oss.sgi.com <xfs@oss.sgi.com> + linux-block@vger.kernel.org <linux-block@vger.kernel.org> linux-mm@kvack.org <linux-mm@kvack.org> - viro@zeniv.linux.org.uk <viro@zeniv.linux.org.uk> - akpm@linux-foundation.org <akpm@linux-foundation.org> - axboe@fb.com <axboe@fb.com> + Wilcox + Matthew R <matthew.r.wilcox@intel.com> linux-fsdevel@vger.kernel.org <linux-fsdevel@vger.kernel.org> + akpm@linux-foundation.org <akpm@linux-foundation.org> linux-ext4@vger.kernel.org <linux-ext4@vger.kernel.org> - david@fromorbit.com <david@fromorbit.com> - " jack@suse.cz <jack@suse.cz>\0" + " viro@zeniv.linux.org.uk <viro@zeniv.linux.org.uk>\0" "\00:1\0" "b\0" "On Fri, 2016-04-15 at 12:11 -0400, Jeff Moyer wrote:\n" @@ -41,7 +40,7 @@ "> > +\tif (IS_DAX(inode)) {\n" "> > +\t\tret = dax_do_io(iocb, inode, iter, offset,\n" "> > blkdev_get_block,\n" - "> > \303\202\302\240\t\t\t\tNULL, DIO_SKIP_DIO_COUNT);\n" + "> > \302\240\t\t\t\tNULL, DIO_SKIP_DIO_COUNT);\n" "> > -\treturn __blockdev_direct_IO(iocb, inode, I_BDEV(inode),\n" "> > iter, offset,\n" "> > +\t\tif (ret == -EIO && (iov_iter_rw(iter) == WRITE))\n" @@ -52,25 +51,29 @@ "> > +\n" "> > +\tret = __blockdev_direct_IO(iocb, inode, I_BDEV(inode),\n" "> > iter, offset,\n" - "> > \303\202\302\240\t\t\t\t\303\202\302\240\303\202\302\240\303\202\302\240\303\202\302\240blkdev_get_block, NULL, NULL,\n" - "> > \303\202\302\240\t\t\t\t\303\202\302\240\303\202\302\240\303\202\302\240\303\202\302\240DIO_SKIP_DIO_COUNT);\n" + "> > \302\240\t\t\t\t\302\240\302\240\302\240\302\240blkdev_get_block, NULL, NULL,\n" + "> > \302\240\t\t\t\t\302\240\302\240\302\240\302\240DIO_SKIP_DIO_COUNT);\n" "> > +\tif (ret < 0 && ret_saved)\n" "> > +\t\treturn ret_saved;\n" "> > +\n" - "> Hmm, did you just break async DIO?\303\202\302\240\303\202\302\240I think you did!\303\202\302\240\303\202\302\240:)\n" + "> Hmm, did you just break async DIO?\302\240\302\240I think you did!\302\240\302\240:)\n" "> __blockdev_direct_IO can return -EIOCBQUEUED, and you've now turned\n" "> that\n" - "> into -EIO.\303\202\302\240\303\202\302\240Really, I don't see a reason to save that first\n" - "> -EIO.\303\202\302\240\303\202\302\240The\n" + "> into -EIO.\302\240\302\240Really, I don't see a reason to save that first\n" + "> -EIO.\302\240\302\240The\n" "> same applies to all instances in this patch.\n" "\n" "The reason I saved it was if __blockdev_direct_IO fails for some\n" "reason, we should return the original cause o the error, which was an\n" "EIO.. i.e. we shouldn't be hiding the EIO if the direct_IO fails with\n" "something else..\n" - "But, how does _EIOCBQUEUED work? Maybe we need an exception for it?\303\202\302\240\n" + "But, how does _EIOCBQUEUED work? Maybe we need an exception for it?\302\240\n" "\n" "Thanks,\n" - "\t-VishalN\302\213\302\247\302\262\303\246\303\254r\302\270\302\233z\303\207\302\247u\302\251\302\236\302\262\303\206\302\240{\b\302\255\302\206\303\251\303\254\302\271\302\273\034\302\256&\303\236\302\226)\303\256\303\206i\302\242\302\236\303\230^n\302\207r\302\266\302\211\302\232\302\216\302\212\303\235\302\242j$\302\275\302\247$\302\242\302\270\005\302\242\302\271\302\250\302\255\303\250\302\247~\302\212'.)\303\256\303\204\303\203,y\303\250m\302\266\302\237\303\277\303\203\f%\302\212{\302\261\302\232j+\302\203\303\260\303\250\302\236\303\227\302\246j)Z\302\206\302\267\302\237" + "\t-Vishal\n" + "_______________________________________________\n" + "xfs mailing list\n" + "xfs@oss.sgi.com\n" + http://oss.sgi.com/mailman/listinfo/xfs -e27ccc98e04c7595d39ad1ee39968dc69232fa882dca6d83a0a5f44df3dbd619 +16dde3be159c12af83023df7f1cad4369e5b3e92f53cbc4411230060a9372fdc
diff --git a/a/1.txt b/N2/1.txt index 16ad5a9..5ef9ff3 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -17,7 +17,7 @@ On Fri, 2016-04-15 at 12:11 -0400, Jeff Moyer wrote: > > + if (IS_DAX(inode)) { > > + ret = dax_do_io(iocb, inode, iter, offset, > > blkdev_get_block, -> >  NULL, DIO_SKIP_DIO_COUNT); +> > NULL, DIO_SKIP_DIO_COUNT); > > - return __blockdev_direct_IO(iocb, inode, I_BDEV(inode), > > iter, offset, > > + if (ret == -EIO && (iov_iter_rw(iter) == WRITE)) @@ -28,23 +28,23 @@ On Fri, 2016-04-15 at 12:11 -0400, Jeff Moyer wrote: > > + > > + ret = __blockdev_direct_IO(iocb, inode, I_BDEV(inode), > > iter, offset, -> >      blkdev_get_block, NULL, NULL, -> >      DIO_SKIP_DIO_COUNT); +> > blkdev_get_block, NULL, NULL, +> > DIO_SKIP_DIO_COUNT); > > + if (ret < 0 && ret_saved) > > + return ret_saved; > > + -> Hmm, did you just break async DIO?  I think you did!  :) +> Hmm, did you just break async DIO? I think you did! :) > __blockdev_direct_IO can return -EIOCBQUEUED, and you've now turned > that -> into -EIO.  Really, I don't see a reason to save that first -> -EIO.  The +> into -EIO. Really, I don't see a reason to save that first +> -EIO. The > same applies to all instances in this patch. The reason I saved it was if __blockdev_direct_IO fails for some reason, we should return the original cause o the error, which was an EIO.. i.e. we shouldn't be hiding the EIO if the direct_IO fails with something else.. -But, how does _EIOCBQUEUED work? Maybe we need an exception for it? +But, how does _EIOCBQUEUED work? Maybe we need an exception for it? Thanks, - -VishalN§²æìr¸zǧu©²Æ {\béì¹»\x1c®&Þ)îÆi¢Ø^nr¶Ý¢j$½§$¢¸\x05¢¹¨è§~'.)îÄÃ,yèm¶ÿÃ\f%{±j+ðèצj)Z· + -Vishal diff --git a/a/content_digest b/N2/content_digest index ce01ba8..613ad03 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -41,7 +41,7 @@ "> > +\tif (IS_DAX(inode)) {\n" "> > +\t\tret = dax_do_io(iocb, inode, iter, offset,\n" "> > blkdev_get_block,\n" - "> > \303\202\302\240\t\t\t\tNULL, DIO_SKIP_DIO_COUNT);\n" + "> > \302\240\t\t\t\tNULL, DIO_SKIP_DIO_COUNT);\n" "> > -\treturn __blockdev_direct_IO(iocb, inode, I_BDEV(inode),\n" "> > iter, offset,\n" "> > +\t\tif (ret == -EIO && (iov_iter_rw(iter) == WRITE))\n" @@ -52,25 +52,25 @@ "> > +\n" "> > +\tret = __blockdev_direct_IO(iocb, inode, I_BDEV(inode),\n" "> > iter, offset,\n" - "> > \303\202\302\240\t\t\t\t\303\202\302\240\303\202\302\240\303\202\302\240\303\202\302\240blkdev_get_block, NULL, NULL,\n" - "> > \303\202\302\240\t\t\t\t\303\202\302\240\303\202\302\240\303\202\302\240\303\202\302\240DIO_SKIP_DIO_COUNT);\n" + "> > \302\240\t\t\t\t\302\240\302\240\302\240\302\240blkdev_get_block, NULL, NULL,\n" + "> > \302\240\t\t\t\t\302\240\302\240\302\240\302\240DIO_SKIP_DIO_COUNT);\n" "> > +\tif (ret < 0 && ret_saved)\n" "> > +\t\treturn ret_saved;\n" "> > +\n" - "> Hmm, did you just break async DIO?\303\202\302\240\303\202\302\240I think you did!\303\202\302\240\303\202\302\240:)\n" + "> Hmm, did you just break async DIO?\302\240\302\240I think you did!\302\240\302\240:)\n" "> __blockdev_direct_IO can return -EIOCBQUEUED, and you've now turned\n" "> that\n" - "> into -EIO.\303\202\302\240\303\202\302\240Really, I don't see a reason to save that first\n" - "> -EIO.\303\202\302\240\303\202\302\240The\n" + "> into -EIO.\302\240\302\240Really, I don't see a reason to save that first\n" + "> -EIO.\302\240\302\240The\n" "> same applies to all instances in this patch.\n" "\n" "The reason I saved it was if __blockdev_direct_IO fails for some\n" "reason, we should return the original cause o the error, which was an\n" "EIO.. i.e. we shouldn't be hiding the EIO if the direct_IO fails with\n" "something else..\n" - "But, how does _EIOCBQUEUED work? Maybe we need an exception for it?\303\202\302\240\n" + "But, how does _EIOCBQUEUED work? Maybe we need an exception for it?\302\240\n" "\n" "Thanks,\n" - "\t-VishalN\302\213\302\247\302\262\303\246\303\254r\302\270\302\233z\303\207\302\247u\302\251\302\236\302\262\303\206\302\240{\b\302\255\302\206\303\251\303\254\302\271\302\273\034\302\256&\303\236\302\226)\303\256\303\206i\302\242\302\236\303\230^n\302\207r\302\266\302\211\302\232\302\216\302\212\303\235\302\242j$\302\275\302\247$\302\242\302\270\005\302\242\302\271\302\250\302\255\303\250\302\247~\302\212'.)\303\256\303\204\303\203,y\303\250m\302\266\302\237\303\277\303\203\f%\302\212{\302\261\302\232j+\302\203\303\260\303\250\302\236\303\227\302\246j)Z\302\206\302\267\302\237" + "\t-Vishal" -e27ccc98e04c7595d39ad1ee39968dc69232fa882dca6d83a0a5f44df3dbd619 +66e53c01008df1f6fad2b29850fa6e4dea798fba59c0411ee977ef885e7d9a32
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.