Commit dd7205ed authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/pub/scm/linux/kernel/git/aia21/ntfs-2.6

parents 43d0b137 c394e458
...@@ -102,6 +102,9 @@ ToDo/Notes: ...@@ -102,6 +102,9 @@ ToDo/Notes:
inode instead of a vfs inode as parameter. inode instead of a vfs inode as parameter.
- Fix the definition of the CHKD ntfs record magic. It had an off by - Fix the definition of the CHKD ntfs record magic. It had an off by
two error causing it to be CHKB instead of CHKD. two error causing it to be CHKB instead of CHKD.
- Fix a stupid bug in __ntfs_bitmap_set_bits_in_run() which caused the
count to become negative and hence we had a wild memset() scribbling
all over the system's ram.
2.1.23 - Implement extension of resident files and make writing safe as well as 2.1.23 - Implement extension of resident files and make writing safe as well as
many bug fixes, cleanups, and enhancements... many bug fixes, cleanups, and enhancements...
......
/* /*
* bitmap.c - NTFS kernel bitmap handling. Part of the Linux-NTFS project. * bitmap.c - NTFS kernel bitmap handling. Part of the Linux-NTFS project.
* *
* Copyright (c) 2004 Anton Altaparmakov * Copyright (c) 2004-2005 Anton Altaparmakov
* *
* This program/include file is free software; you can redistribute it and/or * This program/include file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published * modify it under the terms of the GNU General Public License as published
...@@ -90,7 +90,8 @@ int __ntfs_bitmap_set_bits_in_run(struct inode *vi, const s64 start_bit, ...@@ -90,7 +90,8 @@ int __ntfs_bitmap_set_bits_in_run(struct inode *vi, const s64 start_bit,
/* If the first byte is partial, modify the appropriate bits in it. */ /* If the first byte is partial, modify the appropriate bits in it. */
if (bit) { if (bit) {
u8 *byte = kaddr + pos; u8 *byte = kaddr + pos;
while ((bit & 7) && cnt--) { while ((bit & 7) && cnt) {
cnt--;
if (value) if (value)
*byte |= 1 << bit++; *byte |= 1 << bit++;
else else
......
...@@ -309,7 +309,7 @@ typedef le16 MFT_RECORD_FLAGS; ...@@ -309,7 +309,7 @@ typedef le16 MFT_RECORD_FLAGS;
* Note: The _LE versions will return a CPU endian formatted value! * Note: The _LE versions will return a CPU endian formatted value!
*/ */
#define MFT_REF_MASK_CPU 0x0000ffffffffffffULL #define MFT_REF_MASK_CPU 0x0000ffffffffffffULL
#define MFT_REF_MASK_LE const_cpu_to_le64(0x0000ffffffffffffULL) #define MFT_REF_MASK_LE const_cpu_to_le64(MFT_REF_MASK_CPU)
typedef u64 MFT_REF; typedef u64 MFT_REF;
typedef le64 leMFT_REF; typedef le64 leMFT_REF;
......
...@@ -58,7 +58,8 @@ static inline MFT_RECORD *map_mft_record_page(ntfs_inode *ni) ...@@ -58,7 +58,8 @@ static inline MFT_RECORD *map_mft_record_page(ntfs_inode *ni)
* overflowing the unsigned long, but I don't think we would ever get * overflowing the unsigned long, but I don't think we would ever get
* here if the volume was that big... * here if the volume was that big...
*/ */
index = ni->mft_no << vol->mft_record_size_bits >> PAGE_CACHE_SHIFT; index = (u64)ni->mft_no << vol->mft_record_size_bits >>
PAGE_CACHE_SHIFT;
ofs = (ni->mft_no << vol->mft_record_size_bits) & ~PAGE_CACHE_MASK; ofs = (ni->mft_no << vol->mft_record_size_bits) & ~PAGE_CACHE_MASK;
i_size = i_size_read(mft_vi); i_size = i_size_read(mft_vi);
......
/* /*
* unistr.c - NTFS Unicode string handling. Part of the Linux-NTFS project. * unistr.c - NTFS Unicode string handling. Part of the Linux-NTFS project.
* *
* Copyright (c) 2001-2004 Anton Altaparmakov * Copyright (c) 2001-2005 Anton Altaparmakov
* *
* This program/include file is free software; you can redistribute it and/or * This program/include file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published * modify it under the terms of the GNU General Public License as published
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment