<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/fs/hfsplus, branch v2.6.30</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6</title>
<updated>2009-04-03T04:09:10+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-04-03T04:09:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8fe74cf053de7ad2124a894996f84fa890a81093'/>
<id>8fe74cf053de7ad2124a894996f84fa890a81093</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
  Remove two unneeded exports and make two symbols static in fs/mpage.c
  Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225
  Trim includes of fdtable.h
  Don't crap into descriptor table in binfmt_som
  Trim includes in binfmt_elf
  Don't mess with descriptor table in load_elf_binary()
  Get rid of indirect include of fs_struct.h
  New helper - current_umask()
  check_unsafe_exec() doesn't care about signal handlers sharing
  New locking/refcounting for fs_struct
  Take fs_struct handling to new file (fs/fs_struct.c)
  Get rid of bumping fs_struct refcount in pivot_root(2)
  Kill unsharing fs_struct in __set_personality()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
  Remove two unneeded exports and make two symbols static in fs/mpage.c
  Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225
  Trim includes of fdtable.h
  Don't crap into descriptor table in binfmt_som
  Trim includes in binfmt_elf
  Don't mess with descriptor table in load_elf_binary()
  Get rid of indirect include of fs_struct.h
  New helper - current_umask()
  check_unsafe_exec() doesn't care about signal handlers sharing
  New locking/refcounting for fs_struct
  Take fs_struct handling to new file (fs/fs_struct.c)
  Get rid of bumping fs_struct refcount in pivot_root(2)
  Kill unsharing fs_struct in __set_personality()
</pre>
</div>
</content>
</entry>
<entry>
<title>fs/hfsplus: return f_fsid for statfs(2)</title>
<updated>2009-04-03T02:05:09+00:00</updated>
<author>
<name>Coly Li</name>
<email>coly.li@suse.de</email>
</author>
<published>2009-04-02T23:59:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=25564dd869d8615e80b70b37de7545bd21de3c7c'/>
<id>25564dd869d8615e80b70b37de7545bd21de3c7c</id>
<content type='text'>
Make hfsplus return f_fsid info for statfs(2).

Signed-off-by: Coly Li &lt;coly.li@suse.de&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make hfsplus return f_fsid info for statfs(2).

Signed-off-by: Coly Li &lt;coly.li@suse.de&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>New helper - current_umask()</title>
<updated>2009-04-01T03:00:26+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2009-03-29T23:08:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48'/>
<id>ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48</id>
<content type='text'>
current-&gt;fs-&gt;umask is what most of fs_struct users are doing.
Put that into a helper function.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
current-&gt;fs-&gt;umask is what most of fs_struct users are doing.
Put that into a helper function.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>constify dentry_operations: misc filesystems</title>
<updated>2009-03-27T18:44:00+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2009-02-20T05:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e16404ed0f3f330dc3e99b95cef69bb60bcd27f7'/>
<id>e16404ed0f3f330dc3e99b95cef69bb60bcd27f7</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fs/Kconfig: move hfs, hfsplus out</title>
<updated>2009-01-22T10:15:57+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-01-22T07:53:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b08bac1f185b2281c3decb4f8e15e8f41f96e974'/>
<id>b08bac1f185b2281c3decb4f8e15e8f41f96e974</id>
<content type='text'>
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>CRED: Wrap task credential accesses in the HFSplus filesystem</title>
<updated>2008-11-13T23:38:54+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2008-11-13T23:38:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4ac8489a7294dcf92127825d74f2d981143e825d'/>
<id>4ac8489a7294dcf92127825d74f2d981143e825d</id>
<content type='text'>
Wrap access to task credentials so that they can be separated more easily from
the task_struct during the introduction of COW creds.

Change most current-&gt;(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().

Change some task-&gt;e?[ug]id to task_e?[ug]id().  In some places it makes more
sense to use RCU directly rather than a convenient wrapper; these will be
addressed by later patches.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Reviewed-by: James Morris &lt;jmorris@namei.org&gt;
Acked-by: Serge Hallyn &lt;serue@us.ibm.com&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Wrap access to task credentials so that they can be separated more easily from
the task_struct during the introduction of COW creds.

Change most current-&gt;(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().

Change some task-&gt;e?[ug]id to task_e?[ug]id().  In some places it makes more
sense to use RCU directly rather than a convenient wrapper; these will be
addressed by later patches.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Reviewed-by: James Morris &lt;jmorris@namei.org&gt;
Acked-by: Serge Hallyn &lt;serue@us.ibm.com&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] move executable checking into -&gt;permission()</title>
<updated>2008-10-23T09:13:25+00:00</updated>
<author>
<name>Miklos Szeredi</name>
<email>miklos@szeredi.hu</email>
</author>
<published>2008-07-31T11:41:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f696a3659fc4b3a3bf4bc83d9dbec5e5a2ffd929'/>
<id>f696a3659fc4b3a3bf4bc83d9dbec5e5a2ffd929</id>
<content type='text'>
For execute permission on a regular files we need to check if file has
any execute bits at all, regardless of capabilites.

This check is normally performed by generic_permission() but was also
added to the case when the filesystem defines its own -&gt;permission()
method.  In the latter case the filesystem should be responsible for
performing this check.

Move the check from inode_permission() inside filesystems which are
not calling generic_permission().

Create a helper function execute_ok() that returns true if the inode
is a directory or if any execute bits are present in i_mode.

Also fix up the following code:

 - coda control file is never executable
 - sysctl files are never executable
 - hfs_permission seems broken on MAY_EXEC, remove
 - hfsplus_permission is eqivalent to generic_permission(), remove

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For execute permission on a regular files we need to check if file has
any execute bits at all, regardless of capabilites.

This check is normally performed by generic_permission() but was also
added to the case when the filesystem defines its own -&gt;permission()
method.  In the latter case the filesystem should be responsible for
performing this check.

Move the check from inode_permission() inside filesystems which are
not calling generic_permission().

Create a helper function execute_ok() that returns true if the inode
is a directory or if any execute bits are present in i_mode.

Also fix up the following code:

 - coda control file is never executable
 - sysctl files are never executable
 - hfs_permission seems broken on MAY_EXEC, remove
 - hfsplus_permission is eqivalent to generic_permission(), remove

Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hfsplus: fix possible deadlock when handling corrupted extents</title>
<updated>2008-10-20T15:52:38+00:00</updated>
<author>
<name>Eric Sesterhenn</name>
<email>snakebyte@gmx.de</email>
</author>
<published>2008-10-19T03:28:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=248736c2a57206388c86f8cdd3392ee986e84f9f'/>
<id>248736c2a57206388c86f8cdd3392ee986e84f9f</id>
<content type='text'>
A corrupted extent for the extent file itself may try to get an impossible
extent, causing a deadlock if I see it correctly.

Check the inode number after the first_blocks checks and fail if it's the
extent file, as according to the spec the extent file should have no
extent for itself.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A corrupted extent for the extent file itself may try to get an impossible
extent, causing a deadlock if I see it correctly.

Check the inode number after the first_blocks checks and fail if it's the
extent file, as according to the spec the extent file should have no
extent for itself.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hfsplus: missing O_LARGEFILE check</title>
<updated>2008-10-20T15:52:38+00:00</updated>
<author>
<name>Alan Cox</name>
<email>alan@lxorguk.ukuu.org.uk</email>
</author>
<published>2008-10-19T03:28:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=6e7152944426be786c6c232990914e4565290d35'/>
<id>6e7152944426be786c6c232990914e4565290d35</id>
<content type='text'>
hfsplus: O_LARGEFILE checking is missing

Addresses http://bugzilla.kernel.org/show_bug.cgi?id=8490

From: Alan Cox &lt;alan@redhat.com&gt;
Reported-by: didier &lt;did447@gmail.com&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
hfsplus: O_LARGEFILE checking is missing

Addresses http://bugzilla.kernel.org/show_bug.cgi?id=8490

From: Alan Cox &lt;alan@redhat.com&gt;
Reported-by: didier &lt;did447@gmail.com&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hfsplus: check read_mapping_page() return value</title>
<updated>2008-10-16T18:21:46+00:00</updated>
<author>
<name>Eric Sesterhenn</name>
<email>snakebyte@gmx.de</email>
</author>
<published>2008-10-16T05:04:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=649f1ee6c705aab644035a7998d7b574193a598a'/>
<id>649f1ee6c705aab644035a7998d7b574193a598a</id>
<content type='text'>
While testing more corrupted images with hfsplus, i came across
one which triggered the following bug:

[15840.675016] BUG: unable to handle kernel paging request at fffffffb
[15840.675016] IP: [&lt;c0116a4f&gt;] kmap+0x15/0x56
[15840.675016] *pde = 00008067 *pte = 00000000
[15840.675016] Oops: 0000 [#1] PREEMPT DEBUG_PAGEALLOC
[15840.675016] Modules linked in:
[15840.675016]
[15840.675016] Pid: 11575, comm: ln Not tainted (2.6.27-rc4-00123-gd3ee1b4-dirty #29)
[15840.675016] EIP: 0060:[&lt;c0116a4f&gt;] EFLAGS: 00010202 CPU: 0
[15840.675016] EIP is at kmap+0x15/0x56
[15840.675016] EAX: 00000246 EBX: fffffffb ECX: 00000000 EDX: cab919c0
[15840.675016] ESI: 000007dd EDI: cab0bcf4 EBP: cab0bc98 ESP: cab0bc94
[15840.675016]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
[15840.675016] Process ln (pid: 11575, ti=cab0b000 task=cab919c0 task.ti=cab0b000)
[15840.675016] Stack: 00000000 cab0bcdc c0231cfb 00000000 cab0bce0 00000800 ca9290c0 fffffffb
[15840.675016]        cab145d0 cab919c0 cab15998 22222222 22222222 22222222 00000001 cab15960
[15840.675016]        000007dd cab0bcf4 cab0bd04 c022cb3a cab0bcf4 cab15a6c ca9290c0 00000000
[15840.675016] Call Trace:
[15840.675016]  [&lt;c0231cfb&gt;] ? hfsplus_block_allocate+0x6f/0x2d3
[15840.675016]  [&lt;c022cb3a&gt;] ? hfsplus_file_extend+0xc4/0x1db
[15840.675016]  [&lt;c022ce41&gt;] ? hfsplus_get_block+0x8c/0x19d
[15840.675016]  [&lt;c06adde4&gt;] ? sub_preempt_count+0x9d/0xab
[15840.675016]  [&lt;c019ece6&gt;] ? __block_prepare_write+0x147/0x311
[15840.675016]  [&lt;c0161934&gt;] ? __grab_cache_page+0x52/0x73
[15840.675016]  [&lt;c019ef4f&gt;] ? block_write_begin+0x79/0xd5
[15840.675016]  [&lt;c022cdb5&gt;] ? hfsplus_get_block+0x0/0x19d
[15840.675016]  [&lt;c019f22a&gt;] ? cont_write_begin+0x27f/0x2af
[15840.675016]  [&lt;c022cdb5&gt;] ? hfsplus_get_block+0x0/0x19d
[15840.675016]  [&lt;c0139ebe&gt;] ? tick_program_event+0x28/0x4c
[15840.675016]  [&lt;c013bd35&gt;] ? trace_hardirqs_off+0xb/0xd
[15840.675016]  [&lt;c022b723&gt;] ? hfsplus_write_begin+0x2d/0x32
[15840.675016]  [&lt;c022cdb5&gt;] ? hfsplus_get_block+0x0/0x19d
[15840.675016]  [&lt;c0161988&gt;] ? pagecache_write_begin+0x33/0x107
[15840.675016]  [&lt;c01879e5&gt;] ? __page_symlink+0x3c/0xae
[15840.675016]  [&lt;c019ad34&gt;] ? __mark_inode_dirty+0x12f/0x137
[15840.675016]  [&lt;c0187a70&gt;] ? page_symlink+0x19/0x1e
[15840.675016]  [&lt;c022e6eb&gt;] ? hfsplus_symlink+0x41/0xa6
[15840.675016]  [&lt;c01886a9&gt;] ? vfs_symlink+0x99/0x101
[15840.675016]  [&lt;c018a2f6&gt;] ? sys_symlinkat+0x6b/0xad
[15840.675016]  [&lt;c018a348&gt;] ? sys_symlink+0x10/0x12
[15840.675016]  [&lt;c01038bd&gt;] ? sysenter_do_call+0x12/0x31
[15840.675016]  =======================
[15840.675016] Code: 00 00 75 10 83 3d 88 2f ec c0 02 75 07 89 d0 e8 12 56 05 00 5d c3 55 ba 06 00 00 00 89 e5 53 89 c3 b8 3d eb 7e c0 e8 16 74 00 00 &lt;8b&gt; 03 c1 e8 1e 69 c0 d8 02 00 00 05 b8 69 8e c0 2b 80 c4 02 00
[15840.675016] EIP: [&lt;c0116a4f&gt;] kmap+0x15/0x56 SS:ESP 0068:cab0bc94
[15840.675016] ---[ end trace 4fea40dad6b70e5f ]---

This happens because the return value of read_mapping_page() is passed on
to kmap unchecked.  The bug is triggered after the first
read_mapping_page() in hfsplus_block_allocate(), this patch fixes all
three usages in this functions but leaves the ones further down in the
file unchanged.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While testing more corrupted images with hfsplus, i came across
one which triggered the following bug:

[15840.675016] BUG: unable to handle kernel paging request at fffffffb
[15840.675016] IP: [&lt;c0116a4f&gt;] kmap+0x15/0x56
[15840.675016] *pde = 00008067 *pte = 00000000
[15840.675016] Oops: 0000 [#1] PREEMPT DEBUG_PAGEALLOC
[15840.675016] Modules linked in:
[15840.675016]
[15840.675016] Pid: 11575, comm: ln Not tainted (2.6.27-rc4-00123-gd3ee1b4-dirty #29)
[15840.675016] EIP: 0060:[&lt;c0116a4f&gt;] EFLAGS: 00010202 CPU: 0
[15840.675016] EIP is at kmap+0x15/0x56
[15840.675016] EAX: 00000246 EBX: fffffffb ECX: 00000000 EDX: cab919c0
[15840.675016] ESI: 000007dd EDI: cab0bcf4 EBP: cab0bc98 ESP: cab0bc94
[15840.675016]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
[15840.675016] Process ln (pid: 11575, ti=cab0b000 task=cab919c0 task.ti=cab0b000)
[15840.675016] Stack: 00000000 cab0bcdc c0231cfb 00000000 cab0bce0 00000800 ca9290c0 fffffffb
[15840.675016]        cab145d0 cab919c0 cab15998 22222222 22222222 22222222 00000001 cab15960
[15840.675016]        000007dd cab0bcf4 cab0bd04 c022cb3a cab0bcf4 cab15a6c ca9290c0 00000000
[15840.675016] Call Trace:
[15840.675016]  [&lt;c0231cfb&gt;] ? hfsplus_block_allocate+0x6f/0x2d3
[15840.675016]  [&lt;c022cb3a&gt;] ? hfsplus_file_extend+0xc4/0x1db
[15840.675016]  [&lt;c022ce41&gt;] ? hfsplus_get_block+0x8c/0x19d
[15840.675016]  [&lt;c06adde4&gt;] ? sub_preempt_count+0x9d/0xab
[15840.675016]  [&lt;c019ece6&gt;] ? __block_prepare_write+0x147/0x311
[15840.675016]  [&lt;c0161934&gt;] ? __grab_cache_page+0x52/0x73
[15840.675016]  [&lt;c019ef4f&gt;] ? block_write_begin+0x79/0xd5
[15840.675016]  [&lt;c022cdb5&gt;] ? hfsplus_get_block+0x0/0x19d
[15840.675016]  [&lt;c019f22a&gt;] ? cont_write_begin+0x27f/0x2af
[15840.675016]  [&lt;c022cdb5&gt;] ? hfsplus_get_block+0x0/0x19d
[15840.675016]  [&lt;c0139ebe&gt;] ? tick_program_event+0x28/0x4c
[15840.675016]  [&lt;c013bd35&gt;] ? trace_hardirqs_off+0xb/0xd
[15840.675016]  [&lt;c022b723&gt;] ? hfsplus_write_begin+0x2d/0x32
[15840.675016]  [&lt;c022cdb5&gt;] ? hfsplus_get_block+0x0/0x19d
[15840.675016]  [&lt;c0161988&gt;] ? pagecache_write_begin+0x33/0x107
[15840.675016]  [&lt;c01879e5&gt;] ? __page_symlink+0x3c/0xae
[15840.675016]  [&lt;c019ad34&gt;] ? __mark_inode_dirty+0x12f/0x137
[15840.675016]  [&lt;c0187a70&gt;] ? page_symlink+0x19/0x1e
[15840.675016]  [&lt;c022e6eb&gt;] ? hfsplus_symlink+0x41/0xa6
[15840.675016]  [&lt;c01886a9&gt;] ? vfs_symlink+0x99/0x101
[15840.675016]  [&lt;c018a2f6&gt;] ? sys_symlinkat+0x6b/0xad
[15840.675016]  [&lt;c018a348&gt;] ? sys_symlink+0x10/0x12
[15840.675016]  [&lt;c01038bd&gt;] ? sysenter_do_call+0x12/0x31
[15840.675016]  =======================
[15840.675016] Code: 00 00 75 10 83 3d 88 2f ec c0 02 75 07 89 d0 e8 12 56 05 00 5d c3 55 ba 06 00 00 00 89 e5 53 89 c3 b8 3d eb 7e c0 e8 16 74 00 00 &lt;8b&gt; 03 c1 e8 1e 69 c0 d8 02 00 00 05 b8 69 8e c0 2b 80 c4 02 00
[15840.675016] EIP: [&lt;c0116a4f&gt;] kmap+0x15/0x56 SS:ESP 0068:cab0bc94
[15840.675016] ---[ end trace 4fea40dad6b70e5f ]---

This happens because the return value of read_mapping_page() is passed on
to kmap unchecked.  The bug is triggered after the first
read_mapping_page() in hfsplus_block_allocate(), this patch fixes all
three usages in this functions but leaves the ones further down in the
file unchanged.

Signed-off-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
