<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/fuse/file.c, branch linux-2.6.25.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.25.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.25.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-02-06T18:41:13Z</updated>
<entry>
<title>fuse: save space in struct fuse_req</title>
<updated>2008-02-06T18:41:13Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2008-02-06T09:38:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b57d426445c98789265de6a9338cdb06462d15fb'/>
<id>urn:sha1:b57d426445c98789265de6a9338cdb06462d15fb</id>
<content type='text'>
Move the fields 'dentry' and 'vfsmount' into the request specific union, since
these are only used for the RELEASE request.

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&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>fuse: pass open flags to read and write</title>
<updated>2007-11-29T17:24:54Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2007-11-29T00:22:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a6643094e73247c1ebd36816f494f631fa7be348'/>
<id>urn:sha1:a6643094e73247c1ebd36816f494f631fa7be348</id>
<content type='text'>
Some open flags (O_APPEND, O_DIRECT) can be changed with fcntl(F_SETFL, ...)
after open, but fuse currently only sends the flags to userspace in open.

To make it possible to correcly handle changing flags, send the
current value to userspace in each read and write.

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&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>fuse: fix reading past EOF</title>
<updated>2007-11-29T17:24:54Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2007-11-29T00:21:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bcb4be809d2a804ff040d95db4a664113833e702'/>
<id>urn:sha1:bcb4be809d2a804ff040d95db4a664113833e702</id>
<content type='text'>
Currently reading a fuse file will stop at cached i_size and return
EOF, even though the file might have grown since the attributes were
last updated.

So detect if trying to read past EOF, and refresh the attributes
before continuing with the read.

Thanks to mpb for the report.

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&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>fuse_file_alloc(): fix NULL dereferences</title>
<updated>2007-11-15T02:45:42Z</updated>
<author>
<name>Adrian Bunk</name>
</author>
<published>2007-11-15T01:00:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8744969a819de4ee5158f4cdb30104601cc015d4'/>
<id>urn:sha1:8744969a819de4ee5158f4cdb30104601cc015d4</id>
<content type='text'>
Fix obvious NULL dereferences spotted by the Coverity checker.

Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
Acked-by: Miklos Szeredi &lt;miklos@szeredi.hu&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>fuse: add support for mandatory locking</title>
<updated>2007-10-18T21:37:31Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2007-10-18T10:07:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f33321141b273d60cbb3a8f56a5489baad82ba5e'/>
<id>urn:sha1:f33321141b273d60cbb3a8f56a5489baad82ba5e</id>
<content type='text'>
For mandatory locking the userspace filesystem needs to know the lock
ownership for read, write and truncate operations.

This patch adds the necessary fields to the protocol.

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&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>fuse: add helper for asynchronous writes</title>
<updated>2007-10-18T21:37:31Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2007-10-18T10:07:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b25e82e5673c750116e8b01a4fc7d09be7809f8c'/>
<id>urn:sha1:b25e82e5673c750116e8b01a4fc7d09be7809f8c</id>
<content type='text'>
This patch adds a new helper function fuse_write_fill() which makes it
possible to send WRITE requests asynchronously.

A new flag for WRITE requests is also added which indicates that this a write
from the page cache, and not a "normal" file write.

This patch is in preparation for writable mmap support.

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&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>fuse: add list of writable files to fuse_inode</title>
<updated>2007-10-18T21:37:31Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2007-10-18T10:07:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93a8c3cd9e9834dc5f5c373336f3a0065521152d'/>
<id>urn:sha1:93a8c3cd9e9834dc5f5c373336f3a0065521152d</id>
<content type='text'>
Each WRITE request must carry a valid file descriptor.  When a page is written
back from a memory mapping, the file through which the page was dirtied is not
available, so a new mechananism is needed to find a suitable file in
-&gt;writepage(s).

A list of fuse_files is added to fuse_inode.  The file is removed from the
list in fuse_release().

This patch is in preparation for writable mmap support.

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&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>fuse: support BSD locking semantics</title>
<updated>2007-10-18T21:37:31Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2007-10-18T10:07:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a9ff4f87056cd31a8232b88d013dc6c9ad719c18'/>
<id>urn:sha1:a9ff4f87056cd31a8232b88d013dc6c9ad719c18</id>
<content type='text'>
It is trivial to add support for flock(2) semantics to the existing protocol,
by setting the lock owner field to the file pointer, and passing a new
FUSE_LK_FLOCK flag with the locking request.

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&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>fuse: add atomic open+truncate support</title>
<updated>2007-10-18T21:37:31Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2007-10-18T10:07:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ff958edbf39c014eb06b65ad25b736be08c4e63'/>
<id>urn:sha1:6ff958edbf39c014eb06b65ad25b736be08c4e63</id>
<content type='text'>
This patch allows fuse filesystems to implement open(..., O_TRUNC) as a single
request, instead of separate truncate and open requests.

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&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>fuse: fix race between getattr and write</title>
<updated>2007-10-18T21:37:30Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2007-10-18T10:06:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1fb69e7817296da8a6824804bb206ca1e7f31425'/>
<id>urn:sha1:1fb69e7817296da8a6824804bb206ca1e7f31425</id>
<content type='text'>
Getattr and lookup operations can be running in parallel to attribute changing
operations, such as write and setattr.

This means, that if for example getattr was slower than a write, the cached
size attribute could be set to a stale value.

To prevent this race, introduce a per-filesystem attribute version counter.
This counter is incremented whenever cached attributes are modified, and the
incremented value stored in the inode.

Before storing new attributes in the cache, getattr and lookup check, using
the version number, whether the attributes have been modified during the
request's lifetime.  If so, the returned attributes are not cached, because
they might be stale.

Thanks to Jakub Bogusz for the bug report and test program.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
Cc: Jakub Bogusz &lt;jakub.bogusz@gemius.pl&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>
