tmpfs: support SEEK_DATA and SEEK_HOLE (reprise)
tmpfs: support SEEK_DATA and SEEK_HOLE (reprise)

Revert 3.5's commit f21f8062201f ("tmpfs: revert SEEK_DATA and
SEEK_HOLE") to reinstate 4fb5ef089b28 ("tmpfs: support SEEK_DATA and
SEEK_HOLE"), with the intervening additional arg to
generic_file_llseek_size().

In 3.8, ext4 is expected to join btrfs, ocfs2 and xfs with proper
SEEK_DATA and SEEK_HOLE support; and a good case has now been made for
it on tmpfs, so let's join the party.

It's quite easy for tmpfs to scan the radix_tree to support llseek's new
SEEK_DATA and SEEK_HOLE options: so add them while the minutiae are
still on my mind (in particular, the !PageUptodate-ness of pages
fallocated but still unwritten).

[5c1e68b099950c134891f0b6e179498a8ebe9cf9@linux-foundation.org: fix warning with CONFIG_TMPFS=n]
Signed-off-by: Hugh Dickins <d3abdf3e2800e6cb849f11b81e6eb50b34d96431@google.com>
Cc: Dave Chinner <aa743a0aaec8f7d7a1f01442503957f4d7a2d634@fromorbit.com>
Cc: Jaegeuk Hanse <090e36a5922a88376d4223124a69a733a2b940f2@gmail.com>
Cc: "Theodore Ts'o" <4ed386e0495d3e109932df055831d9ec2f824927@mit.edu>
Cc: Zheng Liu <927570c33013ae711b16b2f69d88304bb3fcc969@taobao.com>
Cc: Jeff liu <9edab3d8932dbb8f20eb55cd8199c20e7fb56c12@oracle.com>
Cc: Paul Eggert <26f2e87da542ec7413c65de46a3f47210bfaa4a6@cs.ucla.edu>
Cc: Christoph Hellwig <923f7720577207a44b32e59bbfbea59d27f1ae8e@infradead.org>
Cc: Josef Bacik <78b342861d821967b29f951b7366f5a0267e0c38@redhat.com>
Cc: Andi Kleen <dbd122ef7b6a09ffecf5db9c9296320f3c94e707@firstfloor.org>
Cc: Andreas Dilger <fd4823dd86d134508df78a168e24c446ce7699f3@dilger.ca>
Cc: Marco Stornelli <ef0053b49d5f43e8fd4b83c94f5aca42ef2152b0@gmail.com>
Cc: Chris Mason <a169954b4cb1a46cee25f659d3bddfebe02b5fba@fusionio.com>
Cc: Sunil Mushran <71202349b6bab84fd697c8fc05379fc0e6724c25@oracle.com>
Signed-off-by: Andrew Morton <5c1e68b099950c134891f0b6e179498a8ebe9cf9@linux-foundation.org>
Signed-off-by: Linus Torvalds <69652caca27c8b940640ad396ab71f93cacec34f@linux-foundation.org>

TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas