diff options
Diffstat (limited to 'fs/ntfs/inode.c')
| -rw-r--r-- | fs/ntfs/inode.c | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/fs/ntfs/inode.c b/fs/ntfs/inode.c index ae341922f423..5f4b23d213b9 100644 --- a/fs/ntfs/inode.c +++ b/fs/ntfs/inode.c | |||
| @@ -19,15 +19,19 @@ | |||
| 19 | * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 20 | */ | 20 | */ |
| 21 | 21 | ||
| 22 | #include <linux/pagemap.h> | ||
| 23 | #include <linux/buffer_head.h> | 22 | #include <linux/buffer_head.h> |
| 24 | #include <linux/smp_lock.h> | 23 | #include <linux/fs.h> |
| 25 | #include <linux/quotaops.h> | 24 | #include <linux/mm.h> |
| 26 | #include <linux/mount.h> | 25 | #include <linux/mount.h> |
| 27 | #include <linux/mutex.h> | 26 | #include <linux/mutex.h> |
| 27 | #include <linux/pagemap.h> | ||
| 28 | #include <linux/quotaops.h> | ||
| 29 | #include <linux/slab.h> | ||
| 30 | #include <linux/smp_lock.h> | ||
| 28 | 31 | ||
| 29 | #include "aops.h" | 32 | #include "aops.h" |
| 30 | #include "attrib.h" | 33 | #include "attrib.h" |
| 34 | #include "bitmap.h" | ||
| 31 | #include "dir.h" | 35 | #include "dir.h" |
| 32 | #include "debug.h" | 36 | #include "debug.h" |
| 33 | #include "inode.h" | 37 | #include "inode.h" |
| @@ -1428,7 +1432,6 @@ err_out: | |||
| 1428 | "Run chkdsk.", err, vi->i_ino, ni->type, ni->name_len, | 1432 | "Run chkdsk.", err, vi->i_ino, ni->type, ni->name_len, |
| 1429 | base_vi->i_ino); | 1433 | base_vi->i_ino); |
| 1430 | make_bad_inode(vi); | 1434 | make_bad_inode(vi); |
| 1431 | make_bad_inode(base_vi); | ||
| 1432 | if (err != -ENOMEM) | 1435 | if (err != -ENOMEM) |
| 1433 | NVolSetErrors(vol); | 1436 | NVolSetErrors(vol); |
| 1434 | return err; | 1437 | return err; |
| @@ -1613,6 +1616,7 @@ static int ntfs_read_locked_index_inode(struct inode *base_vi, struct inode *vi) | |||
| 1613 | "$INDEX_ALLOCATION attribute."); | 1616 | "$INDEX_ALLOCATION attribute."); |
| 1614 | goto unm_err_out; | 1617 | goto unm_err_out; |
| 1615 | } | 1618 | } |
| 1619 | a = ctx->attr; | ||
| 1616 | if (!a->non_resident) { | 1620 | if (!a->non_resident) { |
| 1617 | ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is " | 1621 | ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is " |
| 1618 | "resident."); | 1622 | "resident."); |
| @@ -2845,11 +2849,8 @@ done: | |||
| 2845 | old_bad_out: | 2849 | old_bad_out: |
| 2846 | old_size = -1; | 2850 | old_size = -1; |
| 2847 | bad_out: | 2851 | bad_out: |
| 2848 | if (err != -ENOMEM && err != -EOPNOTSUPP) { | 2852 | if (err != -ENOMEM && err != -EOPNOTSUPP) |
| 2849 | make_bad_inode(vi); | ||
| 2850 | make_bad_inode(VFS_I(base_ni)); | ||
| 2851 | NVolSetErrors(vol); | 2853 | NVolSetErrors(vol); |
| 2852 | } | ||
| 2853 | if (err != -EOPNOTSUPP) | 2854 | if (err != -EOPNOTSUPP) |
| 2854 | NInoSetTruncateFailed(ni); | 2855 | NInoSetTruncateFailed(ni); |
| 2855 | else if (old_size >= 0) | 2856 | else if (old_size >= 0) |
| @@ -2864,11 +2865,8 @@ out: | |||
| 2864 | ntfs_debug("Failed. Returning error code %i.", err); | 2865 | ntfs_debug("Failed. Returning error code %i.", err); |
| 2865 | return err; | 2866 | return err; |
| 2866 | conv_err_out: | 2867 | conv_err_out: |
| 2867 | if (err != -ENOMEM && err != -EOPNOTSUPP) { | 2868 | if (err != -ENOMEM && err != -EOPNOTSUPP) |
| 2868 | make_bad_inode(vi); | ||
| 2869 | make_bad_inode(VFS_I(base_ni)); | ||
| 2870 | NVolSetErrors(vol); | 2869 | NVolSetErrors(vol); |
| 2871 | } | ||
| 2872 | if (err != -EOPNOTSUPP) | 2870 | if (err != -EOPNOTSUPP) |
| 2873 | NInoSetTruncateFailed(ni); | 2871 | NInoSetTruncateFailed(ni); |
| 2874 | else | 2872 | else |
| @@ -3116,9 +3114,7 @@ err_out: | |||
| 3116 | "retries later."); | 3114 | "retries later."); |
| 3117 | mark_inode_dirty(vi); | 3115 | mark_inode_dirty(vi); |
| 3118 | } else { | 3116 | } else { |
| 3119 | ntfs_error(vi->i_sb, "Failed (error code %i): Marking inode " | 3117 | ntfs_error(vi->i_sb, "Failed (error %i): Run chkdsk.", -err); |
| 3120 | "as bad. You should run chkdsk.", -err); | ||
| 3121 | make_bad_inode(vi); | ||
| 3122 | NVolSetErrors(ni->vol); | 3118 | NVolSetErrors(ni->vol); |
| 3123 | } | 3119 | } |
| 3124 | return err; | 3120 | return err; |
