An error occurred fetching the project authors.
- 09 Nov, 2004 2 commits
-
-
Anton Altaparmakov authored
Cannot just call fs/ntfs/aops.c::mark_ntfs_record_dirty() since this also marks the page dirty so we create the buffers by hand and set them uptodate. - Revert the removal of the page uptodate check from fs/ntfs/aops.c::mark_ntfs_record_dirty() as it is no longer called from fs/ntfs/mft.c::ntfs_sync_mft_mirror(). Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
Anton Altaparmakov authored
fs/ntfs/aops.c::ntfs_write_mst_block(), mft.c::ntfs_sync_mft_mirror(), and write_mft_record_nolock(). From now on we require that the complete runlist for the mft mirror is always mapped into memory. - Add creation of buffers to fs/ntfs/mft.c::ntfs_sync_mft_mirror(). - Do not check for the page being uptodate in mark_ntfs_record_dirty() as we now call this after marking the page not uptodate during mft mirror synchronisation (fs/ntfs/mft.c::ntfs_sync_mft_mirror()). - Improve error handling in fs/ntfs/aops.c::ntfs_{read,write}_block(). Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 05 Nov, 2004 1 commit
-
-
Anton Altaparmakov authored
PageError() when such errors are detected in the async i/o handler fs/ntfs/aops.c::ntfs_end_buffer_async_read(). All users of mst protected attributes now check the magic of each ntfs record as they use it and act appropriately. This has the effect of making errors granular per ntfs record rather than per page which solves the case where we cannot access any of the ntfs records in a page when a single one of them had an mst error. (Thanks to Ken MacFerrin for the bug report.) Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 16 Oct, 2004 3 commits
-
-
Anton Altaparmakov authored
functions used by it. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
Anton Altaparmakov authored
record sequence number if it is specified (i.e. not zero). Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
Anton Altaparmakov authored
inode.h and make fs/ntfs/inode.c::__ntfs_init_inode() non-static and add a declaration for it to inode.h. Fix some compilation issues that resulted due to #includes and header file interdependencies. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 15 Oct, 2004 2 commits
-
-
Anton Altaparmakov authored
fs/ntfs/aops.c::ntfs_write_mst_block() to only check the dirty state of the first buffer in a record and to take this as the ntfs record dirty state. We cannot look at the dirty state for subsequent buffers because we might be racing with fs/ntfs/aops.c::mark_ntfs_record_dirty(). Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
Anton Altaparmakov authored
ntfs inode as a parameter as this is confusing and misleading and the ntfs inode is available via NTFS_I(page->mapping->host). Adapt all callers to this change. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 14 Oct, 2004 1 commit
-
-
Anton Altaparmakov authored
- Clear the page uptodate flag in fs/ntfs/aops.c::ntfs_write_mst_block() to ensure noone can see the page whilst the mst fixups are applied. - Add the helper fs/ntfs/mft.c::ntfs_may_write_mft_record() which checks if an mft record may be written out safely obtaining any necessary locks in the process. This is used by fs/ntfs/aops.c::ntfs_write_mst_block(). - Modify fs/ntfs/aops.c::ntfs_write_mst_block() to also work for writing mft records and improve its error handling in the process. Now if any of the records in the page fail to be written out, all other records will be written out instead of aborting completely. - Remove ntfs_mft_aops and update all users to use ntfs_mst_aops. - Modify fs/ntfs/inode.c::ntfs_read_locked_inode() to set the ntfs_mst_aops for all inodes which are NInoMstProtected() and ntfs_aops for all other inodes. - Rename fs/ntfs/mft.c::sync_mft_mirror{,_umount}() to ntfs_sync_mft_mirror{,_umount}() and change their parameters so they no longer require an ntfs inode to be present. Update all callers. - Cleanup the error handling in fs/ntfs/mft.c::ntfs_sync_mft_mirror(). - Clear the page uptodate flag in fs/ntfs/mft.c::ntfs_sync_mft_mirror() to ensure noone can see the page whilst the mst fixups are applied. - Remove the no longer needed fs/ntfs/mft.c::ntfs_mft_writepage() and fs/ntfs/mft.c::try_map_mft_record(). - Fix callers of fs/ntfs/aops.c::mark_ntfs_record_dirty() to call it with the ntfs inode which contains the page rather than the ntfs inode the mft record of which is in the page. Ooops. Yes, I know, I should have split this up into smaller changes... Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 12 Oct, 2004 1 commit
-
-
Anton Altaparmakov authored
and accessing the mft record in fs/ntfs/mft.c::ntfs_mft_writepage() by setting the page not uptodate throughout ntfs_mft_writepage(). Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 11 Oct, 2004 2 commits
-
-
Anton Altaparmakov authored
writes the mft record if the buffers belonging to it are dirty. Otherwise we assume that it was written out by other means already. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
Anton Altaparmakov authored
the mft record is already locked and otherwise behaves the same way as fs/ntfs/mft.c::map_mft_record(). Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 07 Oct, 2004 3 commits
-
-
Anton Altaparmakov authored
mark_ntfs_record_dirty() which also changes the behaviour in that we now set the buffers belonging to the mft record dirty as well as the page itself. - Update fs/ntfs/mft.c::write_mft_record_nolock() and sync_mft_mirror() to cope with the fact that there now are dirty buffers in mft pages. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
Anton Altaparmakov authored
Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
Anton Altaparmakov authored
include errors. - Move typedefs for runlist_element and runlist from ntfs.h to runlist.h and fix resulting include errors. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 30 Sep, 2004 1 commit
-
-
Anton Altaparmakov authored
ntfs_extent_mft_record_free(). Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 29 Sep, 2004 1 commit
-
-
Anton Altaparmakov authored
Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 26 Sep, 2004 1 commit
-
-
Anton Altaparmakov authored
Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 24 Sep, 2004 2 commits
-
-
Anton Altaparmakov authored
- Fix all the sparse bitwise warnings. Had to change all the enums storing little endian values to #defines because we cannot set enums to be little endian so we had lots of bitwise warnings from sparse. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
Anton Altaparmakov authored
- Add leMFT_REF data type to fs/ntfs/layout.h. - Update all NTFS header files with the new little endian data types. Affected files are fs/ntfs/layout.h, logfile.h, and time.h. - Do proper type casting when using ntfs_is_*_recordp() in fs/ntfs/logfile.c, mft.c, and super.c. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 16 Sep, 2004 1 commit
-
-
Anton Altaparmakov authored
could occur in the future for when we start closing/freeing extent inodes if we don't set base_ni->ext.extent_ntfs_inos to NULL after we free it. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 23 Aug, 2004 1 commit
-
-
Andrew Morton authored
Remove now-unneeded open-coded unlikelies around IS_ERR(). Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 02 Jul, 2004 1 commit
-
-
Anton Altaparmakov authored
It is simply set to __set_page_dirty_nobuffers() to make sure that running set_page_dirty() on a page containing mft/ntfs records will not affect the dirty state of the page buffers. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 21 Jun, 2004 1 commit
-
-
Anton Altaparmakov authored
accessing them to ensure we never see corrupt data while the page is under writeout. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 08 Jun, 2004 1 commit
-
-
Anton Altaparmakov authored
- Mark the volume dirty when (re)mounting read-write and mark it clean when unmounting or remounting read-only. If any volume errors are found, the volume is left marked dirty to force chkdsk to run. - Add code to set the NT4 compatibility flag when (re)mounting read-write for newer NTFS versions but leave it commented out for now since we do not make any modifications that are NTFS 1.2 specific yet and since setting this flag breaks Captive-NTFS which is not nice. This code must be enabled once we start writing NTFS 1.2 specific changes otherwise Windows NTFS driver might crash / cause corruption. - Fix a silly bug that caused a deadlock in ntfs_mft_writepage(). For inode 0, i.e. $MFT itself, we cannot use ilookup5() from there because the inode is already locked by the kernel (fs/fs-writeback.c::__sync_single_inode()) and ilookup5() waits until the inode is unlocked before returning it and it never gets unlocked because ntfs_mft_writepage() never returns. )-: Fortunately, we have inode 0 pinned in icache for the duration of the mount so we can access it directly. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 04 Jun, 2004 1 commit
-
-
Anton Altaparmakov authored
records in the page are dirty and if so redirties the page and returns. Otherwise it just returns (after doing set_page_writeback(), unlock_page(), end_page_writeback() or the radix-tree tag PAGECACHE_TAG_DIRTY remains set even though the page is clean), thus alowing the VM to do with the page as it pleases. Also, at umount time, now only throw away dirty mft (meta)data pages if dirty inodes are present and ask the user to email us if they see this happening. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 01 Jun, 2004 1 commit
-
-
Anton Altaparmakov authored
fs/ntfs/aops.c::ntfs_writepage() and ntfs_commit_write() use it, thus finally enabling resident file overwrite! (-8 This also includes a placeholder for ->writepage (ntfs_mft_writepage()), which for now just redirties the page and returns. Also, at umount time, we for now throw away all mft data page cache pages after the last call to ntfs_commit_inode() in the hope that all inodes will have been written out by then and hence no dirty (meta)data will be lost. We also check for this case and emit an error message telling the user to run chkdsk. - If the user is trying to enable (dir)atime updates, warn about the fact that we are disabling them. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 28 May, 2004 1 commit
-
-
Anton Altaparmakov authored
keeping the mft mirror in sync with the mft when mirrored mft records are written. The functions are write_mft_record{,_nolock}(). The implementation is quite rudimentary for now with lots of things not implemented yet but I am not sure any of them can actually occur so I will wait for people to hit each one and only then implement it. Signed-off-by:
Anton Altaparmakov <aia21@cantab.net>
-
- 11 May, 2004 1 commit
-
-
Anton Altaparmakov authored
-
- 30 Apr, 2003 1 commit
-
-
Anton Altaparmakov authored
- Remove all uses of unnamed structs and unions in the driver to make old and newer gcc versions happy. Makes it a bit uglier IMO but at least people will stop hassling me
-
- 25 Feb, 2003 1 commit
-
-
Michael Hayes authored
invokation -> invocation
-
- 20 Aug, 2002 1 commit
-
-
Anton Altaparmakov authored
files on ntfs. (Note: Resident files are not supported yet, so avoid writing to files smaller than 1kiB.)
-
- 14 Aug, 2002 1 commit
-
-
Anton Altaparmakov authored
-
- 05 Aug, 2002 1 commit
-
-
Anton Altaparmakov authored
- Massive internal locking changes to mft record locking. Fixes lock recursion and replaces the mrec_lock read/write semaphore with a mutex. Also removes the now superfluous mft_count. This fixes several race conditions and deadlocks, especially in the future write code. - Fix ntfs over loopback for compressed files by adding an optimization barrier. (gcc was screwing up otherwise ?) - Miscellaneous cleanups all over the code and a fix or two in error handling code paths. Thanks go to Christoph Hellwig for pointing out the following two: - Remove now unused function fs/ntfs/malloc.h::vmalloc_nofs(). - Fix ntfs_free() for ia64 and parisc by checking for VMALLOC_END, too.
-
- 24 Jul, 2002 1 commit
-
-
Anton Altaparmakov authored
- Change fs/ntfs/dir.c::ntfs_reddir() to only read/write ->f_pos once at entry/exit respectively. - Use C99 initializers for structures. - Remove unused variable blocks from fs/ntfs/aops.c::ntfs_read_block().
-
- 08 Jul, 2002 1 commit
-
-
Anton Altaparmakov authored
- Fix silly bug in fs/ntfs/super.c::parse_options() which was causing remounts to fail when the partition had an entry in /etc/fstab and the entry specified the nls= option. - Apply same macro magic used in fs/ntfs/inode.h to fs/ntfs/volume.h to expand all the helper functions NVolFoo(), NVolSetFoo(), and NVolClearFoo(). - Move copyright statement from driver initialisation message to module description (fs/super.c). This makes the initialisation message fit on one line and fits in better with rest of kernel. - Update fs/ntfs/attrib.c::map_run_list() to work on both real and attribute inodes, and both for files and directories. - Implement fake attribute inodes allowing all attribute i/o to go via the page cache and to use all the normal vfs/mm functionality: - Add ntfs_attr_iget() and its helper ntfs_read_locked_attr_inode() to fs/ntfs/inode.c. - Add needed cleanup code to ntfs_clear_big_inode(). - Merge address space operations for files and directories (aops.c), now just have ntfs_aops: - Rename: end_buffer_read_attr_async() -> ntfs_end_buffer_read_async(), ntfs_attr_read_block() -> ntfs_read_block(), ntfs_file_read_page() -> ntfs_readpage(). - Rewrite fs/ntfs/aops.c::ntfs_readpage() to work on both real and attribute inodes, and both for files and directories. - Remove obsolete fs/ntfs/aops.c::ntfs_mst_readpage().
-
- 27 Jun, 2002 1 commit
-
-
Anton Altaparmakov authored
- Remove nr_mft_bits and the now superfluous union with nr_mft_records from ntfs_volume structure. - Remove nr_lcn_bits and the now superfluous union with nr_clusters from ntfs_volume structure. - Use iget5_locked() and friends instead of conventional iget(). Wrap the call in fs/ntfs/inode.c::ntfs_iget() and update callers of iget() to use ntfs_iget(). Leave only one iget() call at mount time so we don't need an ntfs_iget_mount(). - Change fs/ntfs/inode.c::ntfs_new_extent_inode() to take mft_no as an additional argument.
-
- 26 Jun, 2002 1 commit
-
-
Anton Altaparmakov authored
- Merge fs/ntfs/aops.c::end_buffer_read_mst_async() and fs/ntfs/aops.c::end_buffer_read_file_async() into one function fs/ntfs/aops.c::end_buffer_read_attr_async() using NInoMstProtected() to determine whether to apply mst fixups or not. - Above change allows merging fs/ntfs/aops.c::ntfs_file_read_block() and fs/ntfs/aops.c::ntfs_mst_readpage() into one function fs/ntfs/aops.c::ntfs_attr_read_block(). Also, create a tiny wrapper fs/ntfs/aops.c::ntfs_mst_readpage() to transform the parameters from the VFS readpage function prototype to the ntfs_attr_read_block() function prototype.
-
- 25 Jun, 2002 1 commit
-
-
Anton Altaparmakov authored
- Move definition of ntfs_inode_state_bits to fs/ntfs/inode.h and do some macro magic (adapted from include/linux/buffer_head.h) to expand all the helper functions NInoFoo(), NInoSetFoo(), and NInoClearFoo(). - Add new flag to ntfs_inode_state_bits: NI_Sparse. - Add new fields to ntfs_inode structure to allow use of fake inodes for attribute i/o: type, name, name_len. Also add new state bits: NI_Attr, which, if set, indicates the inode is a fake inode, and NI_MstProtected, which, if set, indicates the attribute uses multi sector transfer protection, i.e. fixups need to be applied after reads and before/after writes. - Rename fs/ntfs/inode.c::ntfs_{new,clear,destroy}_inode() to ntfs_{new,clear,destroy}_extent_inode() and update callers. - Use ntfs_clear_extent_inode() in fs/ntfs/inode.c::__ntfs_clear_inode() instead of ntfs_destroy_extent_inode(). - Cleanup memory deallocations in {__,}ntfs_clear_{,big_}inode(). - Make all operations on ntfs inode state bits use the NIno* functions. - Set up the new ntfs inode fields and state bits in fs/ntfs/inode.c::ntfs_read_inode() and add appropriate cleanup of allocated memory to __ntfs_clear_inode(). - Cleanup ntfs_inode structure a bit for better ordering of elements w.r.t. their size to allow better packing of the structure in memory.
-
- 19 Jun, 2002 1 commit
-
-
Anton Altaparmakov authored
- Add check at mount time to verify that the number of inodes on the volume does not exceed 2^32 - 1, which is the maximum allowed for NTFS according to Microsoft. - Change mft_no member of ntfs_inode structure to be unsigned long. Update all users. This makes ntfs_inode->mft_no just a copy of struct inode->i_ino. But we can't just always use struct inode->i_ino and remove mft_no because extent inodes do not have an attached struct inode.
-