<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/configfs/inode.c, branch linux-4.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.16.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.16.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-09-28T01:06:22Z</updated>
<entry>
<title>fs: Replace current_fs_time() with current_time()</title>
<updated>2016-09-28T01:06:22Z</updated>
<author>
<name>Deepa Dinamani</name>
</author>
<published>2016-09-14T14:48:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c2050a454c7f123d7a57fa1d76ff61bd43643abb'/>
<id>urn:sha1:c2050a454c7f123d7a57fa1d76ff61bd43643abb</id>
<content type='text'>
current_fs_time() uses struct super_block* as an argument.
As per Linus's suggestion, this is changed to take struct
inode* as a parameter instead. This is because the function
is primarily meant for vfs inode timestamps.
Also the function was renamed as per Arnd's suggestion.

Change all calls to current_fs_time() to use the new
current_time() function instead. current_fs_time() will be
deleted.

Signed-off-by: Deepa Dinamani &lt;deepa.kernel@gmail.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>parallel lookups: actual switch to rwsem</title>
<updated>2016-05-02T23:49:28Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2016-04-15T19:08:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9902af79c01a8e39bb99b922fa3eef6d4ea23d69'/>
<id>urn:sha1:9902af79c01a8e39bb99b922fa3eef6d4ea23d69</id>
<content type='text'>
ta-da!

The main issue is the lack of down_write_killable(), so the places
like readdir.c switched to plain inode_lock(); once killable
variants of rwsem primitives appear, that'll be dealt with.

lockdep side also might need more work

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2016-03-20T01:52:29Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2016-03-20T01:52:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3c2de27d793bf55167804fc47954711e94f27be7'/>
<id>urn:sha1:3c2de27d793bf55167804fc47954711e94f27be7</id>
<content type='text'>
Pull vfs updates from Al Viro:

 - Preparations of parallel lookups (the remaining main obstacle is the
   need to move security_d_instantiate(); once that becomes safe, the
   rest will be a matter of rather short series local to fs/*.c

 - preadv2/pwritev2 series from Christoph

 - assorted fixes

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (32 commits)
  splice: handle zero nr_pages in splice_to_pipe()
  vfs: show_vfsstat: do not ignore errors from show_devname method
  dcache.c: new helper: __d_add()
  don't bother with __d_instantiate(dentry, NULL)
  untangle fsnotify_d_instantiate() a bit
  uninline d_add()
  replace d_add_unique() with saner primitive
  quota: use lookup_one_len_unlocked()
  cifs_get_root(): use lookup_one_len_unlocked()
  nfs_lookup: don't bother with d_instantiate(dentry, NULL)
  kill dentry_unhash()
  ceph_fill_trace(): don't bother with d_instantiate(dn, NULL)
  autofs4: don't bother with d_instantiate(dentry, NULL) in -&gt;lookup()
  configfs: move d_rehash() into configfs_create() for regular files
  ceph: don't bother with d_rehash() in splice_dentry()
  namei: teach lookup_slow() to skip revalidate
  namei: massage lookup_slow() to be usable by lookup_one_len_unlocked()
  lookup_one_len_unlocked(): use lookup_dcache()
  namei: simplify invalidation logics in lookup_dcache()
  namei: change calling conventions for lookup_{fast,slow} and follow_managed()
  ...
</content>
</entry>
<entry>
<title>configfs: move d_rehash() into configfs_create() for regular files</title>
<updated>2016-03-14T04:15:55Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2016-03-07T19:25:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5cf3b560af903c82e9fc12578fac2fbcb8ca1533'/>
<id>urn:sha1:5cf3b560af903c82e9fc12578fac2fbcb8ca1533</id>
<content type='text'>
... and turn it into d_add in there

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>configfs: Replace CURRENT_TIME by current_fs_time()</title>
<updated>2016-02-26T09:42:35Z</updated>
<author>
<name>Deepa Dinamani</name>
</author>
<published>2016-02-22T15:17:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b1f1a29d8fb5eeaeec2cafe4c62f276d950c015b'/>
<id>urn:sha1:b1f1a29d8fb5eeaeec2cafe4c62f276d950c015b</id>
<content type='text'>
CURRENT_TIME macro is not appropriate for filesystems as it
doesn't use the right granularity for filesystem timestamps.
Use current_fs_time() instead.

Signed-off-by: Deepa Dinamani &lt;deepa.kernel@gmail.com&gt;
Acked-by: Joel Becker &lt;jlbec@evilplan.org&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>wrappers for -&gt;i_mutex access</title>
<updated>2016-01-22T23:04:28Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2016-01-22T20:40:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5955102c9984fa081b2d570cfac75c97eecf8f3b'/>
<id>urn:sha1:5955102c9984fa081b2d570cfac75c97eecf8f3b</id>
<content type='text'>
parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested},
inode_foo(inode) being mutex_foo(&amp;inode-&gt;i_mutex).

Please, use those for access to -&gt;i_mutex; over the coming cycle
-&gt;i_mutex will become rwsem, with -&gt;lookup() done with it held
only shared.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>configfs: implement binary attributes</title>
<updated>2016-01-04T11:31:46Z</updated>
<author>
<name>Pantelis Antoniou</name>
</author>
<published>2015-10-22T20:30:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=03607ace807b414eab46323c794b6fb8fcc2d48c'/>
<id>urn:sha1:03607ace807b414eab46323c794b6fb8fcc2d48c</id>
<content type='text'>
ConfigFS lacked binary attributes up until now. This patch
introduces support for binary attributes in a somewhat similar
manner of sysfs binary attributes albeit with changes that
fit the configfs usage model.

Problems that configfs binary attributes fix are everything that
requires a binary blob as part of the configuration of a resource,
such as bitstream loading for FPGAs, DTBs for dynamically created
devices etc.

Look at Documentation/filesystems/configfs/configfs.txt for internals
and howto use them.

This patch is against linux-next as of today that contains
Christoph's configfs rework.

Signed-off-by: Pantelis Antoniou &lt;pantelis.antoniou@konsulko.com&gt;
[hch: folded a fix from Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;]
[hch: a few tiny updates based on review feedback]
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>make simple_positive() public</title>
<updated>2015-06-23T22:02:01Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2015-05-18T14:10:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dc3f4198eac14e52a98dfc79cd84b45e280f59cd'/>
<id>urn:sha1:dc3f4198eac14e52a98dfc79cd84b45e280f59cd</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>VFS: normal filesystems (and lustre): d_inode() annotations</title>
<updated>2015-04-15T19:06:57Z</updated>
<author>
<name>David Howells</name>
</author>
<published>2015-03-17T22:25:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2b0143b5c986be1ce8408b3aadc4709e0a94429d'/>
<id>urn:sha1:2b0143b5c986be1ce8408b3aadc4709e0a94429d</id>
<content type='text'>
that's the bulk of filesystem drivers dealing with inodes of their own

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>configfs: Fix potential NULL d_inode dereference</title>
<updated>2015-02-20T09:56:43Z</updated>
<author>
<name>David Howells</name>
</author>
<published>2015-01-27T15:18:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=112fc894a7c49e6435f91faa1cebfd425e6f3ace'/>
<id>urn:sha1:112fc894a7c49e6435f91faa1cebfd425e6f3ace</id>
<content type='text'>
Code that does this:

		if (!(d_unhashed(dentry) &amp;&amp; dentry-&gt;d_inode)) {
			...
			simple_unlink(parent-&gt;d_inode, dentry);
		}

is broken because:

    !(d_unhashed(dentry) &amp;&amp; dentry-&gt;d_inode)

is equivalent to:

    !d_unhashed(dentry) || !dentry-&gt;d_inode

so it is possible to get into simple_unlink() with dentry-&gt;d_inode == NULL.

simple_unlink(), however, assumes dentry-&gt;d_inode cannot be NULL.

I think that what was meant is this:

    !d_unhashed(dentry) &amp;&amp; dentry-&gt;d_inode

and that the logical-not operator or the final close-bracket was misplaced.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
cc: Joel Becker &lt;joel.becker@oracle.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
