From 40e0165b138d8215a63075db1f1a1a0b4a5fe26d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sat, 8 Jan 2011 11:03:29 +0000 Subject: [PATCH] extent max length is 0x8000, not 0xffff (we only support initialized extents). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40146 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/ext2/ExtentStream.cpp | 2 +- src/add-ons/kernel/file_systems/ext2/ext2.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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;