tree add695bfe2311c653143b08fa717ad909bf48f5c
parent 66129f88c4cc719591f687e5c8c764fe9d3e437a
author Anton Altaparmakov <[EMAIL PROTECTED]> Thu, 11 Nov 2004 12:42:00 +0000
committer Anton Altaparmakov <[EMAIL PROTECTED]> Wed, 04 May 2005 17:00:18 +0100

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 <[EMAIL PROTECTED]>

 fs/ntfs/ChangeLog  |    2 ++
 fs/ntfs/lcnalloc.c |    8 +++++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog
--- a/fs/ntfs/ChangeLog
+++ b/fs/ntfs/ChangeLog
@@ -31,6 +31,8 @@ ToDo/Notes:
          out.
        - Use i_size_read() in fs/ntfs/attrib.c::ntfs_attr_set().
        - Use i_size_read() in fs/ntfs/logfile.c::ntfs_{check,empty}_logfile().
+       - Use i_size_read() once and then use the cached value in
+         fs/ntfs/lcnalloc.c::ntfs_cluster_alloc().
 
 2.1.22 - Many bug and race fixes and error handling improvements.
 
diff --git a/fs/ntfs/lcnalloc.c b/fs/ntfs/lcnalloc.c
--- a/fs/ntfs/lcnalloc.c
+++ b/fs/ntfs/lcnalloc.c
@@ -140,6 +140,7 @@ runlist_element *ntfs_cluster_alloc(ntfs
        LCN zone_start, zone_end, bmp_pos, bmp_initial_pos, last_read_pos, lcn;
        LCN prev_lcn = 0, prev_run_len = 0, mft_zone_size;
        s64 clusters;
+       loff_t i_size;
        struct inode *lcnbmp_vi;
        runlist_element *rl = NULL;
        struct address_space *mapping;
@@ -249,6 +250,7 @@ runlist_element *ntfs_cluster_alloc(ntfs
        clusters = count;
        rlpos = rlsize = 0;
        mapping = lcnbmp_vi->i_mapping;
+       i_size = i_size_read(lcnbmp_vi);
        while (1) {
                ntfs_debug("Start of outer while loop: done_zones 0x%x, "
                                "search_zone %i, pass %i, zone_start 0x%llx, "
@@ -263,7 +265,7 @@ runlist_element *ntfs_cluster_alloc(ntfs
                last_read_pos = bmp_pos >> 3;
                ntfs_debug("last_read_pos 0x%llx.",
                                (unsigned long long)last_read_pos);
-               if (last_read_pos > lcnbmp_vi->i_size) {
+               if (last_read_pos > i_size) {
                        ntfs_debug("End of attribute reached.  "
                                        "Skipping to zone_pass_done.");
                        goto zone_pass_done;
@@ -287,8 +289,8 @@ runlist_element *ntfs_cluster_alloc(ntfs
                buf_size = last_read_pos & ~PAGE_CACHE_MASK;
                buf = page_address(page) + buf_size;
                buf_size = PAGE_CACHE_SIZE - buf_size;
-               if (unlikely(last_read_pos + buf_size > lcnbmp_vi->i_size))
-                       buf_size = lcnbmp_vi->i_size - last_read_pos;
+               if (unlikely(last_read_pos + buf_size > i_size))
+                       buf_size = i_size - last_read_pos;
                buf_size <<= 3;
                lcn = bmp_pos & 7;
                bmp_pos &= ~7;
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to