Commit 93b62d3a authored by Anton Altaparmakov's avatar Anton Altaparmakov

NTFS: Load the mft mirror at mount time and compare the mft records

      stored in it to the ones in the mft (fs/ntfs/super.c).
parent c9dba577
...@@ -71,6 +71,7 @@ Features ...@@ -71,6 +71,7 @@ Features
compatibility, we implement access to files using their short file names if compatibility, we implement access to files using their short file names if
they exist. The driver will not create short file names however, and a rename they exist. The driver will not create short file names however, and a rename
will discard any existing short file name. will discard any existing short file name.
- The new driver supports exporting of mounted NTFS volumes via NFS.
Supported mount options Supported mount options
......
...@@ -37,6 +37,8 @@ ToDo: ...@@ -37,6 +37,8 @@ ToDo:
fs/ntfs/inode.h so they can be used elsewhere. fs/ntfs/inode.h so they can be used elsewhere.
- Determine the mft mirror size as the number of mirrored mft records - Determine the mft mirror size as the number of mirrored mft records
and store it in ntfs_volume->mftmirr_size (fs/ntfs/super.c). and store it in ntfs_volume->mftmirr_size (fs/ntfs/super.c).
- Load the mft mirror at mount time and compare the mft records stored
in it to the ones in the mft (fs/ntfs/super.c).
2.1.7 - Enable NFS exporting of mounted NTFS volumes. 2.1.7 - Enable NFS exporting of mounted NTFS volumes.
......
This diff is collapsed.
...@@ -45,7 +45,7 @@ typedef struct { ...@@ -45,7 +45,7 @@ typedef struct {
LCN nr_blocks; /* Number of NTFS_BLOCK_SIZE bytes LCN nr_blocks; /* Number of NTFS_BLOCK_SIZE bytes
sized blocks on the device. */ sized blocks on the device. */
/* Configuration provided by user at mount time. */ /* Configuration provided by user at mount time. */
unsigned long flags; /* Miscellaneous flags, see above. */ unsigned long flags; /* Miscellaneous flags, see below. */
uid_t uid; /* uid that files will be mounted as. */ uid_t uid; /* uid that files will be mounted as. */
gid_t gid; /* gid that files will be mounted as. */ gid_t gid; /* gid that files will be mounted as. */
mode_t fmask; /* The mask for file permissions. */ mode_t fmask; /* The mask for file permissions. */
...@@ -83,15 +83,17 @@ typedef struct { ...@@ -83,15 +83,17 @@ typedef struct {
unsigned long nr_mft_records; /* Number of mft records == number of unsigned long nr_mft_records; /* Number of mft records == number of
bits in mft bitmap. */ bits in mft bitmap. */
#ifdef NTFS_RW
struct inode *mftmirr_ino; /* The VFS inode of $MFTMirr. */ struct inode *mftmirr_ino; /* The VFS inode of $MFTMirr. */
int mftmirr_size; /* Size of mft mirror in mft records. */ int mftmirr_size; /* Size of mft mirror in mft records. */
#endif /* NTFS_RW */
struct inode *lcnbmp_ino; /* The VFS inode of $Bitmap. */ struct inode *lcnbmp_ino; /* The VFS inode of $Bitmap. */
struct rw_semaphore lcnbmp_lock; /* Lock for serializing accesses to the struct rw_semaphore lcnbmp_lock; /* Lock for serializing accesses to the
cluster bitmap ($Bitmap/$DATA). */ cluster bitmap ($Bitmap/$DATA). */
struct inode *vol_ino; /* The VFS inode of $Volume. */ struct inode *vol_ino; /* The VFS inode of $Volume. */
VOLUME_FLAGS vol_flags; /* Volume flags (VOLUME_*). */ VOLUME_FLAGS vol_flags; /* Volume flags. */
u8 major_ver; /* Ntfs major version of volume. */ u8 major_ver; /* Ntfs major version of volume. */
u8 minor_ver; /* Ntfs minor version of volume. */ u8 minor_ver; /* Ntfs minor version of volume. */
......
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