diff --git a/src/add-ons/kernel/file_systems/ext2/ExtentStream.cpp b/src/add-ons/kernel/file_systems/ext2/ExtentStream.cpp index 6b0ff308ba..c92b5b5e71 100644 --- a/src/add-ons/kernel/file_systems/ext2/ExtentStream.cpp +++ b/src/add-ons/kernel/file_systems/ext2/ExtentStream.cpp @@ -187,7 +187,7 @@ ExtentStream::Enlarge(Transaction& transaction, off_t& numBlocks) TRACE("Enlarge() last %lld allocatedPos %lld\n", last.PhysicalBlock() + last.Length(), fAllocatedPos); if (last.PhysicalBlock() + last.Length() == fAllocatedPos - && (last.Length() + allocated) <= 0xffff) { + && (last.Length() + allocated) <= EXT2_EXTENT_MAX_LENGTH) { if (stream != fStream) { stream = (ext2_extent_stream *)cached.SetToWritable( transaction, cached.BlockNumber()); diff --git a/src/add-ons/kernel/file_systems/ext2/ext2.h b/src/add-ons/kernel/file_systems/ext2/ext2.h index 43ffc92519..25a8468e1a 100644 --- a/src/add-ons/kernel/file_systems/ext2/ext2.h +++ b/src/add-ons/kernel/file_systems/ext2/ext2.h @@ -330,6 +330,7 @@ struct ext2_data_stream { } _PACKED; #define EXT2_EXTENT_MAGIC 0xf30a +#define EXT2_EXTENT_MAX_LENGTH 0x8000 struct ext2_extent_header { uint16 magic;