<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/ext4/dir.c, branch v3.4.83</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs/ext4/dir.c?h=v3.4.83</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs/ext4/dir.c?h=v3.4.83'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-03-29T21:53:25Z</updated>
<entry>
<title>Merge branch 'for-3.4' of git://linux-nfs.org/~bfields/linux</title>
<updated>2012-03-29T21:53:25Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-03-29T21:53:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=71db34fc4330f7c784397acb9f1e6ee7f7b32eb2'/>
<id>urn:sha1:71db34fc4330f7c784397acb9f1e6ee7f7b32eb2</id>
<content type='text'>
Pull nfsd changes from Bruce Fields:

Highlights:
 - Benny Halevy and Tigran Mkrtchyan implemented some more 4.1 features,
   moving us closer to a complete 4.1 implementation.
 - Bernd Schubert fixed a long-standing problem with readdir cookies on
   ext2/3/4.
 - Jeff Layton performed a long-overdue overhaul of the server reboot
   recovery code which will allow us to deprecate the current code (a
   rather unusual user of the vfs), and give us some needed flexibility
   for further improvements.
 - Like the client, we now support numeric uid's and gid's in the
   auth_sys case, allowing easier upgrades from NFSv2/v3 to v4.x.

Plus miscellaneous bugfixes and cleanup.

Thanks to everyone!

There are also some delegation fixes waiting on vfs review that I
suppose will have to wait for 3.5.  With that done I think we'll finally
turn off the "EXPERIMENTAL" dependency for v4 (though that's mostly
symbolic as it's been on by default in distro's for a while).

And the list of 4.1 todo's should be achievable for 3.5 as well:

   http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues

though we may still want a bit more experience with it before turning it
on by default.

* 'for-3.4' of git://linux-nfs.org/~bfields/linux: (55 commits)
  nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled
  nfsd4: use auth_unix unconditionally on backchannel
  nfsd: fix NULL pointer dereference in cld_pipe_downcall
  nfsd4: memory corruption in numeric_name_to_id()
  sunrpc: skip portmap calls on sessions backchannel
  nfsd4: allow numeric idmapping
  nfsd: don't allow legacy client tracker init for anything but init_net
  nfsd: add notifier to handle mount/unmount of rpc_pipefs sb
  nfsd: add the infrastructure to handle the cld upcall
  nfsd: add a header describing upcall to nfsdcld
  nfsd: add a per-net-namespace struct for nfsd
  sunrpc: create nfsd dir in rpc_pipefs
  nfsd: add nfsd4_client_tracking_ops struct and a way to set it
  nfsd: convert nfs4_client-&gt;cl_cb_flags to a generic flags field
  NFSD: Fix nfs4_verifier memory alignment
  NFSD: Fix warnings when NFSD_DEBUG is not defined
  nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes)
  nfsd: rename 'int access' to 'int may_flags' in nfsd_open()
  ext4: return 32/64-bit dir name hash according to usage type
  fs: add new FMODE flags: FMODE_32bithash and FMODE_64bithash
  ...
</content>
</entry>
<entry>
<title>ext4: change some printk() calls to use ext4_msg() instead</title>
<updated>2012-03-20T03:41:49Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2012-03-20T03:41:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=92b9781658dba287a1354ad74ed351f68c3ee740'/>
<id>urn:sha1:92b9781658dba287a1354ad74ed351f68c3ee740</id>
<content type='text'>
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: return 32/64-bit dir name hash according to usage type</title>
<updated>2012-03-19T02:44:40Z</updated>
<author>
<name>Fan Yong</name>
<email>yong.fan@whamcloud.com</email>
</author>
<published>2012-03-19T02:44:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d1f5273e9adb40724a85272f248f210dc4ce919a'/>
<id>urn:sha1:d1f5273e9adb40724a85272f248f210dc4ce919a</id>
<content type='text'>
Traditionally ext2/3/4 has returned a 32-bit hash value from llseek()
to appease NFSv2, which can only handle a 32-bit cookie for seekdir()
and telldir().  However, this causes problems if there are 32-bit hash
collisions, since the NFSv2 server can get stuck resending the same
entries from the directory repeatedly.

Allow ext4 to return a full 64-bit hash (both major and minor) for
telldir to decrease the chance of hash collisions.  This still needs
integration on the NFS side.

Patch-updated-by: Bernd Schubert &lt;bernd.schubert@itwm.fraunhofer.de&gt;
(blame me if something is not correct)

Signed-off-by: Fan Yong &lt;yong.fan@whamcloud.com&gt;
Signed-off-by: Andreas Dilger &lt;adilger@whamcloud.com&gt;
Signed-off-by: Bernd Schubert &lt;bernd.schubert@itwm.fraunhofer.de&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: remove an unneeded NULL check in __ext4_check_dir_entry()</title>
<updated>2012-02-20T22:53:05Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2012-02-20T22:53:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4fda400360e6c15b9dea4351f2ad85845cdfda7e'/>
<id>urn:sha1:4fda400360e6c15b9dea4351f2ad85845cdfda7e</id>
<content type='text'>
We dereference "bh" unconditionally a couple lines down to find
"by-&gt;b_size".  This function is never called with a NULL "bh" so I have
removed the check.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: Use ext4_error_file() to print the pathname to the corrupted inode</title>
<updated>2011-01-10T17:10:55Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2011-01-10T17:10:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f7c21177af0b32a2cd9ee36189637f0c1f0e1e17'/>
<id>urn:sha1:f7c21177af0b32a2cd9ee36189637f0c1f0e1e17</id>
<content type='text'>
Where the file pointer is available, use ext4_error_file() instead of
ext4_error_inode().

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: optimize ext4_check_dir_entry() with unlikely() annotations</title>
<updated>2010-12-20T03:07:02Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2010-12-20T03:07:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cad3f00763dcf9dfc62cbddf4bd714ab5a71a0eb'/>
<id>urn:sha1:cad3f00763dcf9dfc62cbddf4bd714ab5a71a0eb</id>
<content type='text'>
This function gets called a lot for large directories, and the answer
is almost always "no, no, there's no problem".  This means using
unlikely() is a good thing.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: improve llseek error handling for overly large seek offsets</title>
<updated>2010-10-28T01:30:06Z</updated>
<author>
<name>Toshiyuki Okajima</name>
<email>toshi.okajima@jp.fujitsu.com</email>
</author>
<published>2010-10-28T01:30:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e0d10bfa91b0a089a9e2c378b5c42f4e96171d95'/>
<id>urn:sha1:e0d10bfa91b0a089a9e2c378b5c42f4e96171d95</id>
<content type='text'>
The llseek system call should return EINVAL if passed a seek offset
which results in a write error.  What this maximum offset should be
depends on whether or not the huge_file file system feature is set,
and whether or not the file is extent based or not.


If the file has no "EXT4_EXTENTS_FL" flag, the maximum size which can be 
written (write systemcall) is different from the maximum size which can be 
sought (lseek systemcall).

For example, the following 2 cases demonstrates the differences
between the maximum size which can be written, versus the seek offset
allowed by the llseek system call:

#1: mkfs.ext3 &lt;dev&gt;; mount -t ext4 &lt;dev&gt;
#2: mkfs.ext3 &lt;dev&gt;; tune2fs -Oextent,huge_file &lt;dev&gt;; mount -t ext4 &lt;dev&gt;

Table. the max file size which we can write or seek
       at each filesystem feature tuning and file flag setting
+============+===============================+===============================+
| \ File flag|                               |                               |
|      \     |     !EXT4_EXTENTS_FL          |        EXT4_EXTETNS_FL        |
|case       \|                               |                               |
+------------+-------------------------------+-------------------------------+
| #1         |   write:      2194719883264   | write:       --------------   |
|            |   seek:       2199023251456   | seek:        --------------   |
+------------+-------------------------------+-------------------------------+
| #2         |   write:      4402345721856   | write:       17592186044415   |
|            |   seek:      17592186044415   | seek:        17592186044415   |
+------------+-------------------------------+-------------------------------+

The differences exist because ext4 has 2 maxbytes which are sb-&gt;s_maxbytes
(= extent-mapped maxbytes) and EXT4_SB(sb)-&gt;s_bitmap_maxbytes (= block-mapped 
maxbytes).  Although generic_file_llseek uses only extent-mapped maxbytes.
(llseek of ext4_file_operations is generic_file_llseek which uses
sb-&gt;s_maxbytes.)

Therefore we create ext4 llseek function which uses 2 maxbytes.

The new own function originates from generic_file_llseek().
If the file flag, "EXT4_EXTENTS_FL" is not set, the function alters 
inode-&gt;i_sb-&gt;s_maxbytes into EXT4_SB(inode-&gt;i_sb)-&gt;s_bitmap_maxbytes.

Signed-off-by: Toshiyuki Okajima &lt;toshi.okajima@jp.fujitsu.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Cc: Andreas Dilger &lt;adilger.kernel@dilger.ca&gt;
</content>
</entry>
<entry>
<title>ext4: Remove unnecessary casts of private_data</title>
<updated>2010-07-27T15:56:04Z</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2010-07-27T15:56:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a271fe8527fe9637bdd82c97123b1356940dd84b'/>
<id>urn:sha1:a271fe8527fe9637bdd82c97123b1356940dd84b</id>
<content type='text'>
Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: Pass line numbers to ext4_error() and friends</title>
<updated>2010-07-27T15:56:40Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2010-07-27T15:56:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c398eda0e43a791be0fca6f197a1e2bbb9f16070'/>
<id>urn:sha1:c398eda0e43a791be0fca6f197a1e2bbb9f16070</id>
<content type='text'>
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: Cleanup ext4_check_dir_entry so __func__ is now implicit</title>
<updated>2010-07-27T15:54:40Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2010-07-27T15:54:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=60fd4da34d55a9cc0d857fc76dc12cf8cab4ed02'/>
<id>urn:sha1:60fd4da34d55a9cc0d857fc76dc12cf8cab4ed02</id>
<content type='text'>
    
Also start passing the line number to ext4_check_dir since we're going
to need it in upcoming patch.
    
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
</feed>
