diff options
-rw-r--r-- | fs/xfs/xfs_iomap.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index afcf3c926565..3fad07136c5d 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c | |||
@@ -52,7 +52,6 @@ xfs_iomap_eof_align_last_fsb( | |||
52 | xfs_extlen_t extsize, | 52 | xfs_extlen_t extsize, |
53 | xfs_fileoff_t *last_fsb) | 53 | xfs_fileoff_t *last_fsb) |
54 | { | 54 | { |
55 | xfs_fileoff_t new_last_fsb = 0; | ||
56 | xfs_extlen_t align = 0; | 55 | xfs_extlen_t align = 0; |
57 | int eof, error; | 56 | int eof, error; |
58 | 57 | ||
@@ -70,8 +69,8 @@ xfs_iomap_eof_align_last_fsb( | |||
70 | else if (mp->m_dalign) | 69 | else if (mp->m_dalign) |
71 | align = mp->m_dalign; | 70 | align = mp->m_dalign; |
72 | 71 | ||
73 | if (align && XFS_ISIZE(ip) >= XFS_FSB_TO_B(mp, align)) | 72 | if (align && XFS_ISIZE(ip) < XFS_FSB_TO_B(mp, align)) |
74 | new_last_fsb = roundup_64(*last_fsb, align); | 73 | align = 0; |
75 | } | 74 | } |
76 | 75 | ||
77 | /* | 76 | /* |
@@ -79,14 +78,14 @@ xfs_iomap_eof_align_last_fsb( | |||
79 | * (when file on a real-time subvolume or has di_extsize hint). | 78 | * (when file on a real-time subvolume or has di_extsize hint). |
80 | */ | 79 | */ |
81 | if (extsize) { | 80 | if (extsize) { |
82 | if (new_last_fsb) | 81 | if (align) |
83 | align = roundup_64(new_last_fsb, extsize); | 82 | align = roundup_64(align, extsize); |
84 | else | 83 | else |
85 | align = extsize; | 84 | align = extsize; |
86 | new_last_fsb = roundup_64(*last_fsb, align); | ||
87 | } | 85 | } |
88 | 86 | ||
89 | if (new_last_fsb) { | 87 | if (align) { |
88 | xfs_fileoff_t new_last_fsb = roundup_64(*last_fsb, align); | ||
90 | error = xfs_bmap_eof(ip, new_last_fsb, XFS_DATA_FORK, &eof); | 89 | error = xfs_bmap_eof(ip, new_last_fsb, XFS_DATA_FORK, &eof); |
91 | if (error) | 90 | if (error) |
92 | return error; | 91 | return error; |