<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/hfsplus/inode.c, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-10-26T01:24:15Z</updated>
<entry>
<title>list.h: new helper - hlist_add_fake()</title>
<updated>2010-10-26T01:24:15Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2010-10-23T19:23:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=756acc2d61712a8cafe2aa6ad626c60a185d3645'/>
<id>urn:sha1:756acc2d61712a8cafe2aa6ad626c60a185d3645</id>
<content type='text'>
Make node look as if it was on hlist, with hlist_del()
working correctly.  Usable without any locking...

Convert a couple of places where we want to do that to
inode-&gt;i_hash.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>hfsplus: create correct initial catalog entries for device files</title>
<updated>2010-10-14T13:54:39Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-14T13:54:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90e616905a423126805186cb5754e10a704b30c8'/>
<id>urn:sha1:90e616905a423126805186cb5754e10a704b30c8</id>
<content type='text'>
Make sure the initial insertation of the catalog entry already contains
the device number by calling init_special_inode early and setting writing
out the dev field of the on-disk permission structure.  The latter is
facilitated by sharing the almost identical hfsplus_set_perms helpers
between initial catalog entry creating and -&gt;write_inode.

Unless we crashed just after mknod this bug was harmless as the inode
is marked dirty at the end of hfsplus_mknod, and hfsplus_write_inode
will update the catalog entry to contain the correct value.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: remove superflous rootflags field in hfsplus_inode_info</title>
<updated>2010-10-14T13:54:33Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-14T13:54:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=722c55d13e7296cc62ed8a38f926a915ff32e4ea'/>
<id>urn:sha1:722c55d13e7296cc62ed8a38f926a915ff32e4ea</id>
<content type='text'>
The rootflags field in hfsplus_inode_info only caches the immutable and
append-only flags in the VFS inode, so we can easily get rid of it.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: fix link corruption</title>
<updated>2010-10-14T13:54:28Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-14T13:54:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f6089ff87d309a8ddb7b0d4dd92a570f1b0f689b'/>
<id>urn:sha1:f6089ff87d309a8ddb7b0d4dd92a570f1b0f689b</id>
<content type='text'>
HFS implements hardlink by using indirect catalog entries that refer to a hidden
directly.  The link target is cached in the dev field in the HFS+ specific
inode, which is also used for the device number for device files, and inside
for passing the nlink value of the indirect node from hfsplus_cat_write_inode
to a helper function.  Now if we happen to write out the indirect node while
hfsplus_link is creating the catalog entry we'll get a link pointing to the
linkid of the current nlink value.  This can easily be reproduced by a large
enough loop of local git-clone operations.

Stop abusing the dev field in the HFS+ inode for short term storage by
refactoring the way the permission structure in the catalog entry is
set up, and rename the dev field to linkid to avoid any confusion.

While we're at it also prevent creating hard links to special files, as
the HFS+ dev and linkid share the same space in the on-disk structure.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: remove the rsrc_inodes list</title>
<updated>2010-10-01T03:44:02Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-01T03:44:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=58a818f532e83f337689358c102ba2048d1b37f5'/>
<id>urn:sha1:58a818f532e83f337689358c102ba2048d1b37f5</id>
<content type='text'>
We never walk the list - the only reason for it is to make the resource fork
inodes appear hashed to the writeback code.  Borrow a trick from JFS to do
that without needing a list head.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: fix HFSPLUS_I calling convention</title>
<updated>2010-10-01T03:43:31Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-01T03:43:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6af502de224c3742936d54eee7e3690c09822934'/>
<id>urn:sha1:6af502de224c3742936d54eee7e3690c09822934</id>
<content type='text'>
HFSPLUS_I doesn't return a pointer to the hfsplus-specific inode
information like all other FOO_I macros, but dereference the pointer in a way
that made it look like a direct struct derefence.  This only works as long
as the HFSPLUS_I macro is used directly and prevents us from keepig a local
hfsplus_inode_info pointer.  Fix the calling convention and introduce a local
hip variable in all functions that use it constantly.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: fix HFSPLUS_SB calling convention</title>
<updated>2010-10-01T03:42:59Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-01T03:42:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dd73a01a30d729e8fa6f829c4582650e258e36f9'/>
<id>urn:sha1:dd73a01a30d729e8fa6f829c4582650e258e36f9</id>
<content type='text'>
HFSPLUS_SB doesn't return a pointer to the hfsplus-specific superblock
information like all other FOO_SB macros, but dereference the pointer in a way
that made it look like a direct struct derefence.  This only works as long
as the HFSPLUS_SB macro is used directly and prevents us from keepig a local
hfsplus_sb_info pointer.  Fix the calling convention and introduce a local
sbi variable in all functions that use it constantly.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>get rid of file_fsync()</title>
<updated>2010-08-09T20:47:43Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2010-07-04T08:24:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b5fc510c48f631882ccec3c0f02a25d5b67de09f'/>
<id>urn:sha1:b5fc510c48f631882ccec3c0f02a25d5b67de09f</id>
<content type='text'>
Copy and simplify in the only two users remaining.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>remove inode_setattr</title>
<updated>2010-08-09T20:47:37Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-06-04T09:30:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1025774ce411f2bd4b059ad7b53f0003569b74fa'/>
<id>urn:sha1:1025774ce411f2bd4b059ad7b53f0003569b74fa</id>
<content type='text'>
Replace inode_setattr with opencoded variants of it in all callers.  This
moves the remaining call to vmtruncate into the filesystem methods where it
can be replaced with the proper truncate sequence.

In a few cases it was obvious that we would never end up calling vmtruncate
so it was left out in the opencoded variant:

 spufs: explicitly checks for ATTR_SIZE earlier
 btrfs,hugetlbfs,logfs,dlmfs: explicitly clears ATTR_SIZE earlier
 ufs: contains an opencoded simple_seattr + truncate that sets the filesize just above

In addition to that ncpfs called inode_setattr with handcrafted iattrs,
which allowed to trim down the opencoded variant.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>add missing setattr methods</title>
<updated>2010-08-09T20:47:34Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-06-04T09:29:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d39aae9ec447dda84d9a2850743a78a535a71c90'/>
<id>urn:sha1:d39aae9ec447dda84d9a2850743a78a535a71c90</id>
<content type='text'>
For the new truncate sequence every filesystem that wants to truncate on-disk
state needs a seattr method.  Convert the remaining filesystems that implement
the truncate inode operation to have its own setattr method.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
