NTFS: Use i_size_read() in fs/ntfs/attrib.c::ntfs_attr_set().

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Use i_size_read() in fs/ntfs/logfile.c::ntfs_{check,empty}_logfile().

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Use i_size_read() once and then use the cached value in
      fs/ntfs/lcnalloc.c::ntfs_cluster_alloc().

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Use i_size_read() in fs/ntfs/file.c::ntfs_file_open().

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Merge with /usr/src/ntfs-2.6.git
Merge with /usr/src/ntfs-2.6.git
NTFS: - In fs/ntfs/compress.c, use i_size_read() at the start and then use the
	cached value everywhere.  Cache the initialized_size in the same way
	and protect the critical region where the two sizes are read using the
	new size_lock of the ntfs inode.
      - Add the new size_lock to the ntfs_inode structure (fs/ntfs/inode.h)
	and initialize it (fs/ntfs/inode.c).

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: In fs/ntfs/dir.c, use i_size_read() once and then the cached value
      afterwards.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: - Use i_size_read() in fs/ntfs/super.c once and then use the cached
	value afterwards.  Cache the initialized_size in the same way and
	protect access to the two sizes using the size_lock.
      - Minor optimization to fs/ntfs/super.c::ntfs_statfs() and its helpers.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Use i_size_read() in fs/ntfs/inode.c once and then use the cached value
      afterwards when reading the size of the bitmap inode.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Use i_size_{read,write}() in fs/ntfs/{aops.c,mft.c} and protect
      access to the i_size and other size fields using the size_lock.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Repeat a failed ntfs_truncate() in fs/ntfs/aops.c::ntfs_writepage()
      and abort if it fails again.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Fix stupid bug in fs/ntfs/mft.c introduced in last changeset.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Fixup the resident attribute resizing code in
      fs/ntfs/aops.c::ntfs_{prepare,commit}_write()() and re-enable it.
      It should be safe now.  (Famous last words...)

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Optimise/reorganise some error handling code in fs/ntfs/aops.c.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: - Add disable_sparse mount option together with a per volume sparse
	enable bit which is set appropriately and a per inode sparse disable
	bit which is preset on some system file inodes as appropriate.
      - Enforce that sparse support is disabled on NTFS volumes pre 3.0.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Fix a bug in fs/ntfs/runlist.c::ntfs_mapping_pairs_decompress() in
      the creation of the unmapped runlist element for the base attribute
      extent.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: - Split ntfs_map_runlist() into ntfs_map_runlist() and a non-locking
	helper ntfs_map_runlist_nolock() which is used by ntfs_map_runlist().
	This allows us to map runlist fragments with the runlist lock already
	held without having to drop and reacquire it around the call.  Adapt
	all callers.
      - Change ntfs_find_vcn() to ntfs_find_vcn_nolock() which takes a locked
	runlist.  This allows us to find runlist elements with the runlist
	lock already held without having to drop and reacquire it around the
	call.  Adapt all callers.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Change time to u64 in time.h::ntfs2utc() as it otherwise generates a
      warning in the do_div() call on sparc32.  Thanks to Meelis Roos for the
      report and analysis of the warning.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Fix a nasty runlist merge bug when merging two holes.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>