summaryrefslogtreecommitdiffstats
path: root/fs/ntfs/inode.c
Commit message (Collapse)AuthorAgeFilesLines
* NTFS: Fix a mount time deadlock.Anton Altaparmakov2007-10-121-3/+0
| | | | | | | | | | | | | | | | | | | | | | Big thanks go to Mathias Kolehmainen for reporting the bug, providing debug output and testing the patches I sent him to get it working. The fix was to stop calling ntfs_attr_set() at mount time as that causes balance_dirty_pages_ratelimited() to be called which on systems with little memory actually tries to go and balance the dirty pages which tries to take the s_umount semaphore but because we are still in fill_super() across which the VFS holds s_umount for writing this results in a deadlock. We now do the dirty work by hand by submitting individual buffers. This has the annoying "feature" that mounting can take a few seconds if the journal is large as we have clear it all. One day someone should improve on this by deferring the journal clearing to a helper kernel thread so it can be done in the background but I don't have time for this at the moment and the current solution works fine so I am leaving it like this for now. Signed-off-by: Anton Altaparmakov <aia21@cantab.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* ntfs_init_locked_inode(): fix array indexingAndrew Morton2007-05-311-1/+1
| | | | | | | | | | | | | Local variable `i' is a byte-counter. Don't use it as an index into an array of le32's. Reported-by: "young dave" <hidave.darkstar@gmail.com> Cc: "Christoph Lameter" <clameter@sgi.com> Acked-by: Anton Altaparmakov <aia21@cantab.net> Cc: <stable@kernel.org> Cc: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* header cleaning: don't include smp_lock.h when not usedRandy Dunlap2007-05-081-1/+0
| | | | | | | | | | | | Remove includes of <linux/smp_lock.h> where it is not used/needed. Suggested by Al Viro. Builds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc, sparc64, and arm (all 59 defconfigs). Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* NTFS: 2.1.28 - Fix deadlock reported by Sergey Vlasov due to ntfs_put_inode().Anton Altaparmakov2007-01-181-56/+13
| | | | | | | | | - Fix deadlock in fs/ntfs/inode.c::ntfs_put_inode(). Thanks to Sergey Vlasov for the report and detailed analysis of the deadlock. The fix involved getting rid of ntfs_put_inode() altogether and hence NTFS no longer has a ->put_inode super operation. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* [PATCH] slab: remove SLAB_NOFSChristoph Lameter2006-12-071-2/+2
| | | | | | | | SLAB_NOFS is an alias of GFP_NOFS. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fs/ntfs: Conversion to generic booleanRichard Knutsson2006-10-011-5/+5
| | | | | | | | | Conversion of booleans to: generic-boolean.patch (2006-08-23) Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se> Signed-off-by: Anton Altaparmakov <aia21@cantab.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] inode-diet: Eliminate i_blksize from the inode structureTheodore Ts'o2006-09-271-4/+0
| | | | | | | | | | | | | | | | This eliminates the i_blksize field from struct inode. Filesystems that want to provide a per-inode st_blksize can do so by providing their own getattr routine instead of using the generic_fillattr() function. Note that some filesystems were providing pretty much random (and incorrect) values for i_blksize. [bunk@stusta.de: cleanup] [akpm@osdl.org: generic_fillattr() fix] Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] fs: Removing useless castsPanagiotis Issaris2006-09-271-1/+1
| | | | | | | | | | | * Removing useless casts * Removing useless wrapper * Conversion from kmalloc+memset to kzalloc Signed-off-by: Panagiotis Issaris <takis@issaris.org> Acked-by: Dave Kleikamp <shaggy@austin.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] lockdep: annotate NTFS locking rulesIngo Molnar2006-07-031-0/+33
| | | | | | | | | | | | | | | | NTFS uses lots of type-opaque objects which acquire their true identity runtime - so the lock validator needs to be helped in a couple of places to figure out object types. Many thanks to Anton Altaparmakov for giving lots of explanations about NTFS locking rules. Has no effect on non-lockdep kernels. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Anton Altaparmakov <aia21@cantab.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* NTFS: Semaphore to mutex conversion.Ingo Molnar2006-03-231-5/+5
| | | | | | | | | The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Add a missing call to flush_dcache_mft_record_page() inAnton Altaparmakov2006-03-231-3/+6
| | | | | | fs/ntfs/inode.c::ntfs_write_inode(). Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Fix a bug in fs/ntfs/inode.c::ntfs_read_locked_index_inode() where weAnton Altaparmakov2006-03-231-15/+11
| | | | | | | forgot to update a temporary variable so loading index inodes which have an index allocation attribute failed. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Add support for sparse files which have a compression unit of 0.Anton Altaparmakov2006-03-231-23/+45
| | | | Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: - Cope with attribute list attribute having invalid flags.Anton Altaparmakov2006-02-241-10/+39
| | | | | | | | | Windows copes with this and even chkdsk does not detect or fix this so we have to cope with it, too. Thanks to Pawel Kot for reporting the problem. - Miscellaneous updates to layout.h. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* [PATCH] replace inode_update_time with file_update_timeChristoph Hellwig2006-01-101-1/+19
| | | | | | | | | | | | | | | To allow various options to work per-mount instead of per-sb we need a struct vfsmount when updating ctime and mtime. This preparation patch replaces the inode_update_time routine with a file_update_atime routine so we can easily get at the vfsmount. (and the file makes more sense in this context anyway). Also get rid of the unused second argument - we always want to update the ctime when calling this routine. Signed-off-by: Christoph Hellwig <hch@lst.de> Cc: Al Viro <viro@ftp.linux.org.uk> Cc: Anton Altaparmakov <aia21@cantab.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_semJes Sorensen2006-01-091-4/+4
| | | | | | | | | | | | | This patch converts the inode semaphore to a mutex. I have tested it on XFS and compiled as much as one can consider on an ia64. Anyway your luck with it might be different. Modified-by: Ingo Molnar <mingo@elte.hu> (finished the conversion) Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* NTFS: Enable ATTR_SIZE attribute changes in ntfs_setattr(). This completesAnton Altaparmakov2005-10-041-8/+15
| | | | | | | | | | | the initial implementation of file truncation. Now both open(2)ing a file with the O_TRUNC flag and the {,f}truncate(2) system calls will resize a file appropriately. The limitations are that only uncompressed and unencrypted files are supported. Also, there is only very limited support for highly fragmented files (the ones whose $DATA attribute is split into multiple attribute extents). Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Implement fs/ntfs/inode.[hc]::ntfs_truncate(). It only supportsAnton Altaparmakov2005-10-041-33/+458
| | | | | | uncompressed and unencrypted files. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Fix ntfs_{read,write}page() to cope with concurrent truncates better.Anton Altaparmakov2005-09-191-4/+5
| | | | Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Fixup handling of sparse, compressed, and encrypted attributes inAnton Altaparmakov2005-09-081-101/+114
| | | | | | fs/ntfs/inode.c::ntfs_read_locked_{,attr_,index_}inode(). Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Truncate {a,c,m}time to the ntfs supported time granularity whenAnton Altaparmakov2005-09-081-5/+7
| | | | | | updating the times in the inode in ntfs_setattr(). Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Remove spurious void pointer casts from fs/ntfs/.Pekka Enberg2005-05-271-3/+2
| | | | | Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Correct sparse file handling. The compressed values need to beAnton Altaparmakov2005-05-051-90/+82
| | | | | | | | checked and set in the ntfs inode as done for compressed files and the compressed size needs to be used for vfs inode->i_blocks instead of the allocated size, again, as done for compressed files. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Fix printk format warnings on ia64. (Randy Dunlap)Randy Dunlap2005-05-051-6/+6
| | | | | Signed-off-by: Randy Dunlap <rddunlap@osdl.org> Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: - Set the ntfs_inode->allocated_size to the real allocated size in theAnton Altaparmakov2005-05-051-174/+170
| | | | | | | | mft record for resident attributes (fs/ntfs/inode.c). - Small readability cleanup to use "a" instead of "ctx->attr" everywhere (fs/ntfs/inode.c). Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: - Add disable_sparse mount option together with a per volume sparseAnton Altaparmakov2005-05-051-1/+4
| | | | | | | | enable bit which is set appropriately and a per inode sparse disable bit which is preset on some system file inodes as appropriate. - Enforce that sparse support is disabled on NTFS volumes pre 3.0. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: Use i_size_read() in fs/ntfs/inode.c once and then use the cached valueAnton Altaparmakov2005-05-051-11/+14
| | | | | | afterwards when reading the size of the bitmap inode. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* NTFS: - In fs/ntfs/compress.c, use i_size_read() at the start and then use theAnton Altaparmakov2005-05-051-0/+1
| | | | | | | | | | cached value everywhere. Cache the initialized_size in the same way and protect the critical region where the two sizes are read using the new size_lock of the ntfs inode. - Add the new size_lock to the ntfs_inode structure (fs/ntfs/inode.h) and initialize it (fs/ntfs/inode.c). Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
* Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds2005-04-161-0/+2616
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!