Here are some trivial NTFS changes (a spelling fix and two use before NULL check cases found by Coverity as well as an update in MAINTAINERS for the path to the ntfs git repo) together with a simple LDM fix for parsing fragmented VBLKs. * git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs: NTFS: Update git repo path in MAINTAINERS file. LDM: Fix reassembly of extended VBLKs. NTFS: Correct two spelling errors "dealocate" to "deallocate" in mft.c. NTFS: Do not dereference pointer before checking for NULL. NTFS: Remove unused variable.
Unified · Split
| @@ -4685,7 +4685,7 @@ NTFS FILESYSTEM · 4684 unmodified lines | |||
| 4685 | M: Anton Altaparmakov <anton@tuxera.com> | 4685 | M: Anton Altaparmakov <anton@tuxera.com> |
| 4686 | L: linux-ntfs-dev@lists.sourceforge.net | 4686 | L: linux-ntfs-dev@lists.sourceforge.net |
| 4687 | W: http://www.tuxera.com/ | 4687 | W: http://www.tuxera.com/ |
| 4688 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git | 4688 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs.git |
| 4689 | S: Supported | 4689 | S: Supported |
| 4690 | F: Documentation/filesystems/ntfs.txt | 4690 | F: Documentation/filesystems/ntfs.txt |
| 4691 | F: fs/ntfs/ | 4691 | F: fs/ntfs/ |
| @@ -2,7 +2,7 @@ · 1 unmodified line | |||
| 2 | * ldm - Support for Windows Logical Disk Manager (Dynamic Disks) | 2 | * ldm - Support for Windows Logical Disk Manager (Dynamic Disks) |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2001,2002 Richard Russon <ldm@flatcap.org> | 4 | * Copyright (C) 2001,2002 Richard Russon <ldm@flatcap.org> |
| 5 | * Copyright (c) 2001-2007 Anton Altaparmakov | 5 | * Copyright (c) 2001-2012 Anton Altaparmakov |
| 6 | * Copyright (C) 2001,2002 Jakob Kemi <jakob.kemi@telia.com> | 6 | * Copyright (C) 2001,2002 Jakob Kemi <jakob.kemi@telia.com> |
| 7 | * | 7 | * |
| 8 | * Documentation is available at http://www.linux-ntfs.org/doku.php?id=downloads | 8 | * Documentation is available at http://www.linux-ntfs.org/doku.php?id=downloads |
| @@ -1341,20 +1341,17 @@ found: · 1332 unmodified lines | |||
| 1341 | ldm_error("REC value (%d) exceeds NUM value (%d)", rec, f->num); | 1341 | ldm_error("REC value (%d) exceeds NUM value (%d)", rec, f->num); |
| 1342 | return false; | 1342 | return false; |
| 1343 | } | 1343 | } |
| 1344 | |||
| 1345 | if (f->map & (1 << rec)) { | 1344 | if (f->map & (1 << rec)) { |
| 1346 | ldm_error ("Duplicate VBLK, part %d.", rec); | 1345 | ldm_error ("Duplicate VBLK, part %d.", rec); |
| 1347 | f->map &= 0x7F; /* Mark the group as broken */ | 1346 | f->map &= 0x7F; /* Mark the group as broken */ |
| 1348 | return false; | 1347 | return false; |
| 1349 | } | 1348 | } |
| 1350 | |||
| 1351 | f->map |= (1 << rec); | 1349 | f->map |= (1 << rec); |
| 1352 | 1350 | if (!rec) | |
| 1351 | memcpy(f->data, data, VBLK_SIZE_HEAD); | ||
| 1353 | data += VBLK_SIZE_HEAD; | 1352 | data += VBLK_SIZE_HEAD; |
| 1354 | size -= VBLK_SIZE_HEAD; | 1353 | size -= VBLK_SIZE_HEAD; |
| 1355 | 1354 | memcpy(f->data + VBLK_SIZE_HEAD + rec * size, data, size); | |
| 1356 | memcpy (f->data+rec*(size-VBLK_SIZE_HEAD)+VBLK_SIZE_HEAD, data, size); | ||
| 1357 | |||
| 1358 | return true; | 1355 | return true; |
| 1359 | } | 1356 | } |
| 1360 | 1357 | ||
| @@ -1,7 +1,7 @@ | |||
| 1 | /** | 1 | /** |
| 2 | * attrib.c - NTFS attribute operations. Part of the Linux-NTFS project. | 2 | * attrib.c - NTFS attribute operations. Part of the Linux-NTFS project. |
| 3 | * | 3 | * |
| 4 | * Copyright (c) 2001-2007 Anton Altaparmakov | 4 | * Copyright (c) 2001-2012 Anton Altaparmakov and Tuxera Inc. |
| 5 | * Copyright (c) 2002 Richard Russon | 5 | * Copyright (c) 2002 Richard Russon |
| 6 | * | 6 | * |
| 7 | * This program/include file is free software; you can redistribute it and/or | 7 | * This program/include file is free software; you can redistribute it and/or |
| @@ -345,10 +345,10 @@ LCN ntfs_attr_vcn_to_lcn_nolock(ntfs_inode *ni, const VCN vcn, · 337 unmodified lines | |||
| 345 | unsigned long flags; | 345 | unsigned long flags; |
| 346 | bool is_retry = false; | 346 | bool is_retry = false; |
| 347 | 347 | ||
| 348 | BUG_ON(!ni); | ||
| 348 | ntfs_debug("Entering for i_ino 0x%lx, vcn 0x%llx, %s_locked.", | 349 | ntfs_debug("Entering for i_ino 0x%lx, vcn 0x%llx, %s_locked.", |
| 349 | ni->mft_no, (unsigned long long)vcn, | 350 | ni->mft_no, (unsigned long long)vcn, |
| 350 | write_locked ? "write" : "read"); | 351 | write_locked ? "write" : "read"); |
| 351 | BUG_ON(!ni); | ||
| 352 | BUG_ON(!NInoNonResident(ni)); | 352 | BUG_ON(!NInoNonResident(ni)); |
| 353 | BUG_ON(vcn < 0); | 353 | BUG_ON(vcn < 0); |
| 354 | if (!ni->runlist.rl) { | 354 | if (!ni->runlist.rl) { |
| @@ -469,9 +469,9 @@ runlist_element *ntfs_attr_find_vcn_nolock(ntfs_inode *ni, const VCN vcn, · 114 unmodified lines | |||
| 469 | int err = 0; | 469 | int err = 0; |
| 470 | bool is_retry = false; | 470 | bool is_retry = false; |
| 471 | 471 | ||
| 472 | BUG_ON(!ni); | ||
| 472 | ntfs_debug("Entering for i_ino 0x%lx, vcn 0x%llx, with%s ctx.", | 473 | ntfs_debug("Entering for i_ino 0x%lx, vcn 0x%llx, with%s ctx.", |
| 473 | ni->mft_no, (unsigned long long)vcn, ctx ? "" : "out"); | 474 | ni->mft_no, (unsigned long long)vcn, ctx ? "" : "out"); |
| 474 | BUG_ON(!ni); | ||
| 475 | BUG_ON(!NInoNonResident(ni)); | 475 | BUG_ON(!NInoNonResident(ni)); |
| 476 | BUG_ON(vcn < 0); | 476 | BUG_ON(vcn < 0); |
| 477 | if (!ni->runlist.rl) { | 477 | if (!ni->runlist.rl) { |
| @@ -1,7 +1,7 @@ | |||
| 1 | /** | 1 | /** |
| 2 | * mft.c - NTFS kernel mft record operations. Part of the Linux-NTFS project. | 2 | * mft.c - NTFS kernel mft record operations. Part of the Linux-NTFS project. |
| 3 | * | 3 | * |
| 4 | * Copyright (c) 2001-2011 Anton Altaparmakov and Tuxera Inc. | 4 | * Copyright (c) 2001-2012 Anton Altaparmakov and Tuxera Inc. |
| 5 | * Copyright (c) 2002 Richard Russon | 5 | * Copyright (c) 2002 Richard Russon |
| 6 | * | 6 | * |
| 7 | * This program/include file is free software; you can redistribute it and/or | 7 | * This program/include file is free software; you can redistribute it and/or |
| @@ -1367,7 +1367,7 @@ static int ntfs_mft_bitmap_extend_allocation_nolock(ntfs_volume *vol) · 1359 unmodified lines | |||
| 1367 | ntfs_error(vol->sb, "Failed to merge runlists for mft " | 1367 | ntfs_error(vol->sb, "Failed to merge runlists for mft " |
| 1368 | "bitmap."); | 1368 | "bitmap."); |
| 1369 | if (ntfs_cluster_free_from_rl(vol, rl2)) { | 1369 | if (ntfs_cluster_free_from_rl(vol, rl2)) { |
| 1370 | ntfs_error(vol->sb, "Failed to dealocate " | 1370 | ntfs_error(vol->sb, "Failed to deallocate " |
| 1371 | "allocated cluster.%s", es); | 1371 | "allocated cluster.%s", es); |
| 1372 | NVolSetErrors(vol); | 1372 | NVolSetErrors(vol); |
| 1373 | } | 1373 | } |
| @@ -1805,7 +1805,7 @@ static int ntfs_mft_data_extend_allocation_nolock(ntfs_volume *vol) · 431 unmodified lines | |||
| 1805 | ntfs_error(vol->sb, "Failed to merge runlists for mft data " | 1805 | ntfs_error(vol->sb, "Failed to merge runlists for mft data " |
| 1806 | "attribute."); | 1806 | "attribute."); |
| 1807 | if (ntfs_cluster_free_from_rl(vol, rl2)) { | 1807 | if (ntfs_cluster_free_from_rl(vol, rl2)) { |
| 1808 | ntfs_error(vol->sb, "Failed to dealocate clusters " | 1808 | ntfs_error(vol->sb, "Failed to deallocate clusters " |
| 1809 | "from the mft data attribute.%s", es); | 1809 | "from the mft data attribute.%s", es); |
| 1810 | NVolSetErrors(vol); | 1810 | NVolSetErrors(vol); |
| 1811 | } | 1811 | } |
| @@ -1,7 +1,7 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * super.c - NTFS kernel super block handling. Part of the Linux-NTFS project. | 2 | * super.c - NTFS kernel super block handling. Part of the Linux-NTFS project. |
| 3 | * | 3 | * |
| 4 | * Copyright (c) 2001-2011 Anton Altaparmakov and Tuxera Inc. | 4 | * Copyright (c) 2001-2012 Anton Altaparmakov and Tuxera Inc. |
| 5 | * Copyright (c) 2001,2002 Richard Russon | 5 | * Copyright (c) 2001,2002 Richard Russon |
| 6 | * | 6 | * |
| 7 | * This program/include file is free software; you can redistribute it and/or | 7 | * This program/include file is free software; you can redistribute it and/or |
| @@ -1239,7 +1239,6 @@ static int check_windows_hibernation_status(ntfs_volume *vol) · 1231 unmodified lines | |||
| 1239 | { | 1239 | { |
| 1240 | MFT_REF mref; | 1240 | MFT_REF mref; |
| 1241 | struct inode *vi; | 1241 | struct inode *vi; |
| 1242 | ntfs_inode *ni; | ||
| 1243 | struct page *page; | 1242 | struct page *page; |
| 1244 | u32 *kaddr, *kend; | 1243 | u32 *kaddr, *kend; |
| 1245 | ntfs_name *name = NULL; | 1244 | ntfs_name *name = NULL; |
| @@ -1290,7 +1289,6 @@ static int check_windows_hibernation_status(ntfs_volume *vol) · 44 unmodified lines | |||
| 1290 | "is not the system volume.", i_size_read(vi)); | 1289 | "is not the system volume.", i_size_read(vi)); |
| 1291 | goto iput_out; | 1290 | goto iput_out; |
| 1292 | } | 1291 | } |
| 1293 | ni = NTFS_I(vi); | ||
| 1294 | page = ntfs_map_page(vi->i_mapping, 0); | 1292 | page = ntfs_map_page(vi->i_mapping, 0); |
| 1295 | if (IS_ERR(page)) { | 1293 | if (IS_ERR(page)) { |
| 1296 | ntfs_error(vol->sb, "Failed to read from hiberfil.sys."); | 1294 | ntfs_error(vol->sb, "Failed to read from hiberfil.sys."); |