aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/udf/truncate.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/udf/truncate.c b/fs/udf/truncate.c
index 0449b2216e71..0e328cdc9a45 100644
--- a/fs/udf/truncate.c
+++ b/fs/udf/truncate.c
@@ -88,8 +88,9 @@ void udf_discard_prealloc(struct inode * inode)
88 { 88 {
89 etype = netype; 89 etype = netype;
90 lbcount += elen; 90 lbcount += elen;
91 if (lbcount > inode->i_size && lbcount - inode->i_size < inode->i_sb->s_blocksize) 91 if (lbcount > inode->i_size && lbcount - elen < inode->i_size)
92 { 92 {
93 WARN_ON(lbcount - inode->i_size >= inode->i_sb->s_blocksize);
93 nelen = elen - (lbcount - inode->i_size); 94 nelen = elen - (lbcount - inode->i_size);
94 epos.offset -= adsize; 95 epos.offset -= adsize;
95 extent_trunc(inode, &epos, eloc, etype, elen, nelen); 96 extent_trunc(inode, &epos, eloc, etype, elen, nelen);
@@ -119,6 +120,7 @@ void udf_discard_prealloc(struct inode * inode)
119 } 120 }
120 UDF_I_LENEXTENTS(inode) = lbcount; 121 UDF_I_LENEXTENTS(inode) = lbcount;
121 122
123 WARN_ON(lbcount != inode->i_size);
122 brelse(epos.bh); 124 brelse(epos.bh);
123} 125}
124 126