diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt index 6707050bd6ff0474c881321133e908bef158460f..7d600c0f4c86a8a3733178dc822791cadbb48ce3 100644 --- a/Documentation/filesystems/ntfs.txt +++ b/Documentation/filesystems/ntfs.txt @@ -278,7 +278,7 @@ ChangeLog Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. 2.1.20: - - Fix a stupid bug introduced in 2.1.18 release. + - Fix two stupid bugs introduced in 2.1.18 release. 2.1.19: - Minor bugfix in handling of the default upcase table. - Many internal cleanups and improvements. Many thanks to Linus diff --git a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog index eca9bad72fa4df3c10f7cba8dc04f9f96457cebf..0302c351217f4f5309d072573a959d41b35fdc42 100644 --- a/fs/ntfs/ChangeLog +++ b/fs/ntfs/ChangeLog @@ -27,6 +27,10 @@ ToDo/Notes: where we did not clear ctx->al_entry but it was still set due to changes in ntfs_attr_lookup() and ntfs_external_attr_find() in particular. + - Fix another stupid bug in fs/ntfs/attrib.c::ntfs_external_attr_find() + where we forgot to unmap the extent mft record when we had finished + enumerating an attribute which caused a bug check to trigger when the + VFS calls ->clear_inode. 2.1.19 - Many cleanups, improvements, and a minor bug fix. diff --git a/fs/ntfs/attrib.c b/fs/ntfs/attrib.c index 8168429b5cf5c8ead898843b4aa20c038ce6e8cb..fdf20b85ceb473d940a1240e4f3a71ab5d945095 100644 --- a/fs/ntfs/attrib.c +++ b/fs/ntfs/attrib.c @@ -1738,11 +1738,13 @@ static int ntfs_external_attr_find(const ATTR_TYPE type, * correctly yet as we do not know what @ctx->attr will be set to by * the call to ntfs_attr_find() below. */ + if (ni != base_ni) + unmap_extent_mft_record(ni); ctx->mrec = ctx->base_mrec; ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + le16_to_cpu(ctx->mrec->attrs_offset)); ctx->is_first = TRUE; - ctx->ntfs_ino = ctx->base_ntfs_ino; + ctx->ntfs_ino = base_ni; ctx->base_ntfs_ino = NULL; ctx->base_mrec = NULL; ctx->base_attr = NULL;