<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/exfat/file.c, branch linux-5.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-07-21T01:44:15Z</updated>
<entry>
<title>exfat: fix wrong size update of stream entry by typo</title>
<updated>2020-07-21T01:44:15Z</updated>
<author>
<name>Hyeongseok Kim</name>
</author>
<published>2020-07-08T09:52:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=41e3928f8c58184fcf0bb22e822af39a436370c7'/>
<id>urn:sha1:41e3928f8c58184fcf0bb22e822af39a436370c7</id>
<content type='text'>
The stream.size field is updated to the value of create timestamp
of the file entry. Fix this to use correct stream entry pointer.

Fixes: 29bbb14bfc80 ("exfat: fix incorrect update of stream entry in __exfat_truncate()")
Signed-off-by: Hyeongseok Kim &lt;hyeongseok@gmail.com&gt;
Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
</content>
</entry>
<entry>
<title>exfat: flush dirty metadata in fsync</title>
<updated>2020-06-29T08:11:18Z</updated>
<author>
<name>Sungjong Seo</name>
</author>
<published>2020-06-18T11:43:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5267456e953fd8c5abd8e278b1cc6a9f9027ac0a'/>
<id>urn:sha1:5267456e953fd8c5abd8e278b1cc6a9f9027ac0a</id>
<content type='text'>
generic_file_fsync() exfat used could not guarantee the consistency of
a file because it has flushed not dirty metadata but only dirty data pages
for a file.

Instead of that, use exfat_file_fsync() for files and directories so that
it guarantees to commit both the metadata and data pages for a file.

Signed-off-by: Sungjong Seo &lt;sj1557.seo@samsung.com&gt;
Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
</content>
</entry>
<entry>
<title>exfat: fix incorrect update of stream entry in __exfat_truncate()</title>
<updated>2020-06-09T07:50:07Z</updated>
<author>
<name>Namjae Jeon</name>
</author>
<published>2020-06-03T23:05:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=29bbb14bfc80dd760b07d2be0a27e610562982e3'/>
<id>urn:sha1:29bbb14bfc80dd760b07d2be0a27e610562982e3</id>
<content type='text'>
At truncate, there is a problem of incorrect updating in the file entry
pointer instead of stream entry. This will cause the problem of
overwriting the time field of the file entry to new_size. Fix it to
update stream entry.

Fixes: 98d917047e8b ("exfat: add file operations")
Cc: stable@vger.kernel.org # v5.7
Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
</content>
</entry>
<entry>
<title>exfat: optimize dir-cache</title>
<updated>2020-06-09T07:49:05Z</updated>
<author>
<name>Tetsuhiro Kohada</name>
</author>
<published>2020-05-20T07:56:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=943af1fdacfebe4ff13430655abc460a5e1072f7'/>
<id>urn:sha1:943af1fdacfebe4ff13430655abc460a5e1072f7</id>
<content type='text'>
Optimize directory access based on exfat_entry_set_cache.
 - Hold bh instead of copied d-entry.
 - Modify bh-&gt;data directly instead of the copied d-entry.
 - Write back the retained bh instead of rescanning the d-entry-set.
And
 - Remove unused cache related definitions.

Signed-off-by: Tetsuhiro Kohada &lt;kohada.tetsuhiro@dc.mitsubishielectric.co.jp&gt;
Reviewed-by: Sungjong Seo &lt;sj1557.seo@samsung.com&gt;
Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
</content>
</entry>
<entry>
<title>exfat: replace 'time_ms' with 'time_cs'</title>
<updated>2020-06-09T07:49:00Z</updated>
<author>
<name>Tetsuhiro Kohada</name>
</author>
<published>2020-04-21T23:30:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ed0f84d30ba65f44bed2739572c7ab0fdeed4004'/>
<id>urn:sha1:ed0f84d30ba65f44bed2739572c7ab0fdeed4004</id>
<content type='text'>
Replace time_ms  with time_cs in the file directory entry structure
and related functions.

The unit of create_time_ms/modify_time_ms in File Directory Entry are not
'milli-second', but 'centi-second'.
The exfat specification uses the term '10ms', but instead use 'cs' as in
msdos_fs.h.

Signed-off-by: Tetsuhiro Kohada &lt;kohada.t2@gmail.com&gt;
Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
</content>
</entry>
<entry>
<title>exfat: use iter_file_splice_write</title>
<updated>2020-05-18T02:51:40Z</updated>
<author>
<name>Eric Sandeen</name>
</author>
<published>2020-05-02T01:34:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=035779483072ff7854943dc0cbae82c4e0070d15'/>
<id>urn:sha1:035779483072ff7854943dc0cbae82c4e0070d15</id>
<content type='text'>
Doing copy_file_range() on exfat with a file opened for direct IO leads
to an -EFAULT:

# xfs_io -f -d -c "truncate 32768" \
       -c "copy_range -d 16384 -l 16384 -f 0" /mnt/test/junk
copy_range: Bad address

and the reason seems to be that we go through:

default_file_splice_write
 splice_from_pipe
  __splice_from_pipe
   write_pipe_buf
    __kernel_write
     new_sync_write
      generic_file_write_iter
       generic_file_direct_write
        exfat_direct_IO
         do_blockdev_direct_IO
          iov_iter_get_pages

and land in iterate_all_kinds(), which does "return -EFAULT" for our kvec
iter.

Setting exfat's splice_write to iter_file_splice_write fixes this and lets
fsx (which originally detected the problem) run to success from
the xfstests harness.

Signed-off-by: Eric Sandeen &lt;sandeen@sandeen.net&gt;
Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
</content>
</entry>
<entry>
<title>exfat: truncate atimes to 2s granularity</title>
<updated>2020-04-22T11:14:06Z</updated>
<author>
<name>Eric Sandeen</name>
</author>
<published>2020-04-21T02:13:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=81df1ad40644b706a1cdbd28a1471f9f0c0ea3e8'/>
<id>urn:sha1:81df1ad40644b706a1cdbd28a1471f9f0c0ea3e8</id>
<content type='text'>
The timestamp for access_time has double seconds granularity(There is no
10msIncrement field for access_time unlike create/modify_time).
exfat's atimes are restricted to only 2s granularity so after
we set an atime, round it down to the nearest 2s and set the
sub-second component of the timestamp to 0.

Signed-off-by: Eric Sandeen &lt;sandeen@sandeen.net&gt;
Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
</content>
</entry>
<entry>
<title>exfat: add file operations</title>
<updated>2020-03-06T02:00:40Z</updated>
<author>
<name>Namjae Jeon</name>
</author>
<published>2020-03-02T06:21:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=98d917047e8b7f4bb2ff61d81b0ccd94a00444f9'/>
<id>urn:sha1:98d917047e8b7f4bb2ff61d81b0ccd94a00444f9</id>
<content type='text'>
This adds the implementation of file operations for exfat.

Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
Signed-off-by: Sungjong Seo &lt;sj1557.seo@samsung.com&gt;
Reviewed-by: Pali Rohár &lt;pali.rohar@gmail.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
