<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/orangefs/dir.c, branch linux-4.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-05-04T18:38:24Z</updated>
<entry>
<title>orangefs: count directory pieces correctly</title>
<updated>2017-05-04T18:38:24Z</updated>
<author>
<name>Martin Brandenburg</name>
</author>
<published>2017-05-04T17:16:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2f713b5c7d2a90baba6c88174c81fb9a96bfde21'/>
<id>urn:sha1:2f713b5c7d2a90baba6c88174c81fb9a96bfde21</id>
<content type='text'>
A large directory full of differently sized file names triggered this.
Most directories, even very large directories with shorter names, would
be lucky enough to fit in one server response.

Signed-off-by: Martin Brandenburg &lt;martin@omnibond.com&gt;
Signed-off-by: Mike Marshall &lt;hubcap@omnibond.com&gt;
</content>
</entry>
<entry>
<title>orangefs: invalidate stored directory on seek</title>
<updated>2017-05-04T18:38:15Z</updated>
<author>
<name>Martin Brandenburg</name>
</author>
<published>2017-05-02T16:15:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=942835d68f6e16f2673c70791dc963c548681cb4'/>
<id>urn:sha1:942835d68f6e16f2673c70791dc963c548681cb4</id>
<content type='text'>
If an application seeks to a position before the point which has been
read, it must want updates which have been made to the directory.  So
delete the copy stored in the kernel so it will be fetched again.

Signed-off-by: Martin Brandenburg &lt;martin@omnibond.com&gt;
Signed-off-by: Mike Marshall &lt;hubcap@omnibond.com&gt;
</content>
</entry>
<entry>
<title>orangefs: skip forward to the next directory entry if seek is short</title>
<updated>2017-05-04T18:38:10Z</updated>
<author>
<name>Martin Brandenburg</name>
</author>
<published>2017-05-02T16:15:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bf15ba7c1f9ad000d062968f931e80234db84a24'/>
<id>urn:sha1:bf15ba7c1f9ad000d062968f931e80234db84a24</id>
<content type='text'>
If userspace seeks to a position in the stream which is not correct, it
would have returned EIO because the data in the buffer at that offset
would be incorrect.  This and the userspace daemon returning a corrupt
directory are indistinguishable.

Now if the data does not look right, skip forward to the next chunk and
try again.  The motivation is that if the directory changes, an
application may seek to a position that was valid and no longer is valid.

It is not yet possible for a directory to change.

Signed-off-by: Martin Brandenburg &lt;martin@omnibond.com&gt;
Signed-off-by: Mike Marshall &lt;hubcap@omnibond.com&gt;
</content>
</entry>
<entry>
<title>orangefs: remove ORANGEFS_READDIR macros</title>
<updated>2017-04-26T18:33:00Z</updated>
<author>
<name>Martin Brandenburg</name>
</author>
<published>2017-04-25T19:38:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b796ae37092ef520641b3a96c211c1cc67a0346'/>
<id>urn:sha1:7b796ae37092ef520641b3a96c211c1cc67a0346</id>
<content type='text'>
They are clones of the ORANGEFS_ITERATE macros in use elsewhere.  Delete
ORANGEFS_ITERATE_NEXT which is a hack previously used by readdir.

Signed-off-by: Martin Brandenburg &lt;martin@omnibond.com&gt;
Signed-off-by: Mike Marshall &lt;hubcap@omnibond.com&gt;
</content>
</entry>
<entry>
<title>orangefs: support very large directories</title>
<updated>2017-04-26T18:33:00Z</updated>
<author>
<name>Martin Brandenburg</name>
</author>
<published>2017-04-25T19:38:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=480e3e532e31666a18520a7964bb4095d7a16b9a'/>
<id>urn:sha1:480e3e532e31666a18520a7964bb4095d7a16b9a</id>
<content type='text'>
This works by maintaining a linked list of pages which the directory
has been read into rather than one giant fixed-size buffer.

This replaces code which limits the total directory size to the total
amount that could be returned in one server request.  Since filenames
are usually considerably shorter than the maximum, the old code could
usually handle several server requests before running out of space.

Signed-off-by: Martin Brandenburg &lt;martin@omnibond.com&gt;
Signed-off-by: Mike Marshall &lt;hubcap@omnibond.com&gt;
</content>
</entry>
<entry>
<title>orangefs: support llseek on directories</title>
<updated>2017-04-26T18:33:00Z</updated>
<author>
<name>Martin Brandenburg</name>
</author>
<published>2017-04-25T19:38:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72f66b8329310b810dc9b70b08af728812d2e6c1'/>
<id>urn:sha1:72f66b8329310b810dc9b70b08af728812d2e6c1</id>
<content type='text'>
This and the previous commit fix xfstests generic/257.

Signed-off-by: Martin Brandenburg &lt;martin@omnibond.com&gt;
Signed-off-by: Mike Marshall &lt;hubcap@omnibond.com&gt;
</content>
</entry>
<entry>
<title>orangefs: rewrite readdir to fix several bugs</title>
<updated>2017-04-26T18:33:00Z</updated>
<author>
<name>Martin Brandenburg</name>
</author>
<published>2017-04-25T19:37:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=382f4581e67f57209c7aa67e39f26ba076306a2e'/>
<id>urn:sha1:382f4581e67f57209c7aa67e39f26ba076306a2e</id>
<content type='text'>
In the past, readdir assumed that the user buffer will be large enough
that all entries from the server will fit.  If this was not true,
entries would be skipped.

Since it works now, request 512 entries rather than 96 per server
operation.

Signed-off-by: Martin Brandenburg &lt;martin@omnibond.com&gt;
Signed-off-by: Mike Marshall &lt;hubcap@omnibond.com&gt;
</content>
</entry>
<entry>
<title>orangefs: use %pd/%pD</title>
<updated>2016-08-08T03:38:47Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2016-08-07T16:20:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f66debf1b3755039680289d83fe7a92a4ad3d77d'/>
<id>urn:sha1:f66debf1b3755039680289d83fe7a92a4ad3d77d</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>orangefs: remove unused variable</title>
<updated>2016-04-08T19:50:44Z</updated>
<author>
<name>Martin Brandenburg</name>
</author>
<published>2016-04-04T20:26:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e56f49814250f4ca4b66ec7d3a71152846761d1b'/>
<id>urn:sha1:e56f49814250f4ca4b66ec7d3a71152846761d1b</id>
<content type='text'>
Signed-off-by: Martin Brandenburg &lt;martin@omnibond.com&gt;
Signed-off-by: Mike Marshall &lt;hubcap@omnibond.com&gt;
</content>
</entry>
<entry>
<title>orangefs: don't put readdir slot twice</title>
<updated>2016-03-31T16:06:00Z</updated>
<author>
<name>Martin Brandenburg</name>
</author>
<published>2016-03-28T21:18:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=641bb3246dbb64c0b4a0b6dfa6a024e82c155533'/>
<id>urn:sha1:641bb3246dbb64c0b4a0b6dfa6a024e82c155533</id>
<content type='text'>
This was quite an oversight. After a readdir, the module could not be
unloaded, the number of slots is wrong, and memory near the slot bitmap
is possibly corrupt. Oops.

Signed-off-by: Martin Brandenburg &lt;martin@omnibond.com&gt;
</content>
</entry>
</feed>
