<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ocfs2/file.c, branch linux-5.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-11-03T17:09:37Z</updated>
<entry>
<title>ocfs2: don't use iocb when EIOCBQUEUED returns</title>
<updated>2018-11-03T17:09:37Z</updated>
<author>
<name>Changwei Ge</name>
</author>
<published>2018-11-02T22:48:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e985787750db8aae87f02b67e908f28ac4d6b83'/>
<id>urn:sha1:9e985787750db8aae87f02b67e908f28ac4d6b83</id>
<content type='text'>
When -EIOCBQUEUED returns, it means that aio_complete() will be called
from dio_complete(), which is an asynchronous progress against
write_iter.  Generally, IO is a very slow progress than executing
instruction, but we still can't take the risk to access a freed iocb.

And we do face a BUG crash issue.  Using the crash tool, iocb is
obviously freed already.

  crash&gt; struct -x kiocb ffff881a350f5900
  struct kiocb {
    ki_filp = 0xffff881a350f5a80,
    ki_pos = 0x0,
    ki_complete = 0x0,
    private = 0x0,
    ki_flags = 0x0
  }

And the backtrace shows:
  ocfs2_file_write_iter+0xcaa/0xd00 [ocfs2]
  aio_run_iocb+0x229/0x2f0
  do_io_submit+0x291/0x540
  SyS_io_submit+0x10/0x20
  system_call_fastpath+0x16/0x75

Link: http://lkml.kernel.org/r/1523361653-14439-1-git-send-email-ge.changwei@h3c.com
Signed-off-by: Changwei Ge &lt;ge.changwei@h3c.com&gt;
Reviewed-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Mark Fasheh &lt;mark@fasheh.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Junxiao Bi &lt;junxiao.bi@oracle.com&gt;
Cc: Joseph Qi &lt;jiangqi903@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ocfs2: remove ocfs2_reflink_remap_range</title>
<updated>2018-10-29T23:45:48Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2018-10-29T23:45:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=65f098e91ffbb64d7ca2ed93b6ab2428a2e34452'/>
<id>urn:sha1:65f098e91ffbb64d7ca2ed93b6ab2428a2e34452</id>
<content type='text'>
Since ocfs2_remap_file_range is a thin shell around
ocfs2_remap_remap_range, move everything from the latter into the
former.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
<entry>
<title>ocfs2: support partial clone range and dedupe range</title>
<updated>2018-10-29T23:44:45Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2018-10-29T23:44:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=900611a1bd06ef4a79980e58babc61ef056c81ab'/>
<id>urn:sha1:900611a1bd06ef4a79980e58babc61ef056c81ab</id>
<content type='text'>
Change the ocfs2 remap code to allow for returning partial results.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
<entry>
<title>vfs: make remap_file_range functions take and return bytes completed</title>
<updated>2018-10-29T23:41:49Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2018-10-29T23:41:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=42ec3d4c02187a18e27ff94b409ec27234bf2ffd'/>
<id>urn:sha1:42ec3d4c02187a18e27ff94b409ec27234bf2ffd</id>
<content type='text'>
Change the remap_file_range functions to take a number of bytes to
operate upon and return the number of bytes they operated on.  This is a
requirement for allowing fs implementations to return short clone/dedupe
results to the user, which will enable us to obey resource limits in a
graceful manner.

A subsequent patch will enable copy_file_range to signal to the
-&gt;clone_file_range implementation that it can handle a short length,
which will be returned in the function's return value.  For now the
short return is not implemented anywhere so the behavior won't change --
either copy_file_range manages to clone the entire range or it tries an
alternative.

Neither clone ioctl can take advantage of this, alas.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Amir Goldstein &lt;amir73il@gmail.com&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
<entry>
<title>vfs: pass remap flags to generic_remap_file_range_prep</title>
<updated>2018-10-29T23:41:28Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2018-10-29T23:41:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a91ae49bbaf43910edb09e03fedf26b23875bd52'/>
<id>urn:sha1:a91ae49bbaf43910edb09e03fedf26b23875bd52</id>
<content type='text'>
Plumb the remap flags through the filesystem from the vfs function
dispatcher all the way to the prep function to prepare for behavior
changes in subsequent patches.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Amir Goldstein &lt;amir73il@gmail.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
<entry>
<title>vfs: combine the clone and dedupe into a single remap_file_range</title>
<updated>2018-10-29T23:41:21Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2018-10-29T23:41:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2e5dfc99f2e61c42083ba742395e7a7b353513d1'/>
<id>urn:sha1:2e5dfc99f2e61c42083ba742395e7a7b353513d1</id>
<content type='text'>
Combine the clone_file_range and dedupe_file_range operations into a
single remap_file_range file operation dispatch since they're
fundamentally the same operation.  The differences between the two can
be made in the prep functions.

Signed-off-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
Reviewed-by: Amir Goldstein &lt;amir73il@gmail.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;

</content>
</entry>
<entry>
<title>vfs: dedupe: rationalize args</title>
<updated>2018-07-06T21:57:03Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2018-07-06T21:57:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=87eb5eb2423213ac0e7315ce5d275f1ff80e0263'/>
<id>urn:sha1:87eb5eb2423213ac0e7315ce5d275f1ff80e0263</id>
<content type='text'>
Clean up f_op-&gt;dedupe_file_range() interface.

1) Use loff_t for offsets and length instead of u64
2) Order the arguments the same way as {copy|clone}_file_range().

Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
Reviewed-by: Darrick J. Wong &lt;darrick.wong@oracle.com&gt;
</content>
</entry>
<entry>
<title>vfs: dedupe: return int</title>
<updated>2018-07-06T21:57:03Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2018-07-06T21:57:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5740c99e9d30b81fcc478797e7215c61e241f44e'/>
<id>urn:sha1:5740c99e9d30b81fcc478797e7215c61e241f44e</id>
<content type='text'>
Signed-off-by: Miklos Szeredi &lt;mszeredi@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'vfs-timespec64' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground</title>
<updated>2018-06-14T22:31:07Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2018-06-14T22:31:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7a932516f55cdf430c7cce78df2010ff7db6b874'/>
<id>urn:sha1:7a932516f55cdf430c7cce78df2010ff7db6b874</id>
<content type='text'>
Pull inode timestamps conversion to timespec64 from Arnd Bergmann:
 "This is a late set of changes from Deepa Dinamani doing an automated
  treewide conversion of the inode and iattr structures from 'timespec'
  to 'timespec64', to push the conversion from the VFS layer into the
  individual file systems.

  As Deepa writes:

   'The series aims to switch vfs timestamps to use struct timespec64.
    Currently vfs uses struct timespec, which is not y2038 safe.

    The series involves the following:
    1. Add vfs helper functions for supporting struct timepec64
       timestamps.
    2. Cast prints of vfs timestamps to avoid warnings after the switch.
    3. Simplify code using vfs timestamps so that the actual replacement
       becomes easy.
    4. Convert vfs timestamps to use struct timespec64 using a script.
       This is a flag day patch.

    Next steps:
    1. Convert APIs that can handle timespec64, instead of converting
       timestamps at the boundaries.
    2. Update internal data structures to avoid timestamp conversions'

  Thomas Gleixner adds:

   'I think there is no point to drag that out for the next merge
    window. The whole thing needs to be done in one go for the core
    changes which means that you're going to play that catchup game
    forever. Let's get over with it towards the end of the merge window'"

* tag 'vfs-timespec64' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground:
  pstore: Remove bogus format string definition
  vfs: change inode times to use struct timespec64
  pstore: Convert internal records to timespec64
  udf: Simplify calls to udf_disk_stamp_to_time
  fs: nfs: get rid of memcpys for inode times
  ceph: make inode time prints to be long long
  lustre: Use long long type to print inode time
  fs: add timespec64_truncate()
</content>
</entry>
<entry>
<title>ocfs2: clean up redundant function declarations</title>
<updated>2018-06-08T00:34:33Z</updated>
<author>
<name>Jia Guo</name>
</author>
<published>2018-06-08T00:04:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5bc55d654bdd679b8fee0ca7a3b180cbeaa4168d'/>
<id>urn:sha1:5bc55d654bdd679b8fee0ca7a3b180cbeaa4168d</id>
<content type='text'>
ocfs2_extend_allocation() has been deleted, clean up its declaration.
Also change the static function name from __ocfs2_extend_allocation() to
ocfs2_extend_allocation() to be consistent with the corresponding trace
events as well as comments for ocfs2_lock_allocators().

Link: http://lkml.kernel.org/r/09cf7125-6f12-e53e-20f5-e606b2c16b48@huawei.com
Fixes: 964f14a0d350 ("ocfs2: clean up some dead code")
Signed-off-by: Jia Guo &lt;guojia12@huawei.com&gt;
Acked-by: Joseph Qi &lt;jiangqi903@gmail.com&gt;
Reviewed-by: Jun Piao &lt;piaojun@huawei.com&gt;
Cc: Mark Fasheh &lt;mark@fasheh.com&gt;
Cc: Joel Becker &lt;jlbec@evilplan.org&gt;
Cc: Junxiao Bi &lt;junxiao.bi@oracle.com&gt;
Cc: Changwei Ge &lt;ge.changwei@h3c.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
