changelog

来自「Linux Kernel 2.6.9 for OMAP1710」· 代码 · 共 1,154 行 · 第 1/5 页

TXT
1,154
字号
	  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.	- Add functions ntfs_{clear,set}_volume_flags(), to modify the volume	  information flags (fs/ntfs/super.c).	- 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.2.1.12 - Fix the second fix to the decompression engine and some cleanups.	- Add a new address space operations struct, ntfs_mst_aops, for mst	  protected attributes.  This is because the default ntfs_aops do not	  make sense with mst protected data and were they to write anything to	  such an attribute they would cause data corruption so we provide	  ntfs_mst_aops which does not have any write related operations set.	- Cleanup dirty ntfs inode handling (fs/ntfs/inode.[hc]) which also	  includes an adapted ntfs_commit_inode() and an implementation of	  ntfs_write_inode() which for now just cleans dirty inodes without	  writing them (it does emit a warning that this is happening).	- Undo the second decompression engine fix (see 2.1.9 release ChangeLog	  entry) as it was only fixing a theoretical bug but at the same time	  it badly broke the handling of sparse and uncompressed compression	  blocks.2.1.11 - Driver internal cleanups.	- Only build logfile.o if building the driver with read-write support.	- Really final white space cleanups.	- Use generic_ffs() instead of ffs() in logfile.c which allows the	  log_page_size variable to be optimized by gcc into a constant.	- Rename uchar_t to ntfschar everywhere as uchar_t is unsigned 1-byte	  char as defined by POSIX and as found on some systems.2.1.10 - Force read-only (re)mounting of volumes with unsupported volume flags.	- Finish off the white space cleanups (remove trailing spaces, etc).	- Clean up ntfs_fill_super() and ntfs_read_inode_mount() by removing	  the kludges around the first iget().  Instead of (re)setting ->s_op	  we have the $MFT inode set up by explicit new_inode() / set ->i_ino /	  insert_inode_hash() / call ntfs_read_inode_mount() directly.  This	  kills the need for second super_operations and allows to return error	  from ntfs_read_inode_mount() without resorting to ugly "poisoning"	  tricks.  (Al Viro)	- Force read-only (re)mounting if any of the following bits are set in	  the volume information flags:	  	VOLUME_IS_DIRTY, VOLUME_RESIZE_LOG_FILE,		VOLUME_UPGRADE_ON_MOUNT, VOLUME_DELETE_USN_UNDERWAY,		VOLUME_REPAIR_OBJECT_ID, VOLUME_MODIFIED_BY_CHKDSK	  To make this easier we define VOLUME_MUST_MOUNT_RO_MASK with all the	  above bits set so the test is made easy.2.1.9 - Fix two bugs in decompression engine.	- Fix a bug where we would not always detect that we have reached the	  end of a compression block because we were ending at minus one byte	  which is effectively the same as being at the end.  The fix is to	  check whether the uncompressed buffer has been fully filled and if so	  we assume we have reached the end of the compression block.  A big	  thank you to Marcin Gibuła for the bug report, the assistance in	  tracking down the bug and testing the fix.	- Fix a possible bug where when a compressed read is truncated to the	  end of the file, the offset inside the last page was not truncated.2.1.8 - Handle $MFT mirror and $LogFile, improve time handling, and cleanups.	- Use get_bh() instead of manual atomic_inc() in fs/ntfs/compress.c.	- Modify fs/ntfs/time.c::ntfs2utc(), get_current_ntfs_time(), and	  utc2ntfs() to work with struct timespec instead of time_t on the	  Linux UTC time side thus preserving the full precision of the NTFS	  time and only loosing up to 99 nano-seconds in the Linux UTC time.	- Move fs/ntfs/time.c to fs/ntfs/time.h and make the time functions	  static inline.	- Remove unused ntfs_dirty_inode().	- Cleanup super operations declaration in fs/ntfs/super.c.	- Wrap flush_dcache_mft_record_page() in #ifdef NTFS_RW.	- Add NInoTestSetFoo() and NInoTestClearFoo() macro magic to	  fs/ntfs/inode.h and use it to declare NInoTest{Set,Clear}Dirty.	- Move typedefs for ntfs_attr and test_t from fs/ntfs/inode.c to	  fs/ntfs/inode.h so they can be used elsewhere.	- Determine the mft mirror size as the number of mirrored mft records	  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.  Force a read-only mount if the two do	  not match (fs/ntfs/super.c).	- Fix type casting related warnings on 64-bit architectures.  Thanks	  to Meelis Roos for reporting them.	- Move %L to %ll as %L is floating point and %ll is integer which is	  what we want.	- Read the journal ($LogFile) and determine if the volume has been	  shutdown cleanly and force a read-only mount if not (fs/ntfs/super.c	  and fs/ntfs/logfile.c).  This is a little bit of a crude check in	  that we only look at the restart areas and not at the actual log	  records so that there will be a very small number of cases where we	  think that a volume is dirty when in fact it is clean.  This should	  only affect volumes that have not been shutdown cleanly and did not	  have any pending, non-check-pointed i/o.	- If the $LogFile indicates a clean shutdown and a read-write (re)mount	  is requested, empty $LogFile by overwriting it with 0xff bytes to	  ensure that Windows cannot cause data corruption by replaying a stale	  journal after Linux has written to the volume.2.1.7 - Enable NFS exporting of mounted NTFS volumes.	- Set i_generation in the VFS inode from the seq_no of the NTFS inode.	- Make ntfs_lookup() NFS export safe, i.e. use d_splice_alias(), etc.	- Implement ->get_dentry() in fs/ntfs/namei.c::ntfs_get_dentry() as the	  default doesn't allow inode number 0 which is a valid inode on NTFS	  and even if it did allow that it uses iget() instead of ntfs_iget()	  which makes it useless for us.	- Implement ->get_parent() in fs/ntfs/namei.c::ntfs_get_parent() as the	  default just returns -EACCES which is not very useful.	- Define export operations (->s_export_op) for NTFS (ntfs_export_ops)	  and set them up in the super block at mount time (super.c) this	  allows mounted NTFS volumes to be exported via NFS.	- Add missing return -EOPNOTSUPP; in	  fs/ntfs/aops.c::ntfs_commit_nonresident_write().	- Enforce no atime and no dir atime updates at mount/remount time as	  they are not implemented yet anyway.	- Move a few assignments in fs/ntfs/attrib.c::load_attribute_list() to	  after a NULL check.  Thanks to Dave Jones for pointing this out.2.1.6 - Fix minor bug in handling of compressed directories.	- Fix bug in handling of compressed directories.  A compressed	  directory is not really compressed so when we set the ->i_blocks	  field of a compressed directory inode we were setting it from the	  non-existing field ni->itype.compressed.size which gave random	  results...  For directories we now always use ni->allocated_size.2.1.5 - Fix minor bug in attribute list attribute handling.	- Fix bug in attribute list handling.  Actually it is not as much a bug	  as too much protection in that we were not allowing attribute lists	  which waste space on disk while Windows XP clearly allows it and in	  fact creates such attribute lists so our driver was failing.	- Update NTFS documentation ready for 2.6 kernel release.2.1.4 - Reduce compiler requirements.	- 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 about it.2.1.3 - Important bug fixes in corner cases.	- super.c::parse_ntfs_boot_sector(): Correct the check for 64-bit	  clusters. (Philipp Thomas)	- attrib.c::load_attribute_list(): Fix bug when initialized_size is a	  multiple of the block_size but not the cluster size. (Szabolcs	  Szakacsits <szaka@sienet.hu>)2.1.2 - Important bug fixes aleviating the hangs in statfs.	- Fix buggy free cluster and free inode determination logic.2.1.1 - Minor updates.	- Add handling for initialized_size != data_size in compressed files.	- Reduce function local stack usage from 0x3d4 bytes to just noise in	  fs/ntfs/upcase.c. (Randy Dunlap <rddunlap@osdl.ord>)	- Remove compiler warnings for newer gcc.	- Pages are no longer kmapped by mm/filemap.c::generic_file_write()	  around calls to ->{prepare,commit}_write.  Adapt NTFS appropriately	  in fs/ntfs/aops.c::ntfs_prepare_nonresident_write() by using	  kmap_atomic(KM_USER0).2.1.0 - First steps towards write support: implement file overwrite.	- Add configuration option for developmental write support with an	  appropriately scary configuration help text.	- Initial implementation of fs/ntfs/aops.c::ntfs_writepage() and its	  helper fs/ntfs/aops.c::ntfs_write_block(). This enables mmap(2) based	  overwriting of existing files on ntfs. Note: Resident files are	  only written into memory, and not written out to disk at present, so	  avoid writing to files smaller than about 1kiB.	- Initial implementation of fs/ntfs/aops.c::ntfs_prepare_write(), its	  helper fs/ntfs/aops.c::ntfs_prepare_nonresident_write() and their	  counterparts, fs/ntfs/aops.c::ntfs_commit_write(), and	  fs/ntfs/aops.c::ntfs_commit_nonresident_write(), respectively. Also,	  add generic_file_write() to the ntfs file operations (fs/ntfs/file.c).	  This enables write(2) based overwriting of existing files on ntfs.	  Note: As with mmap(2) based overwriting, resident files are only	  written into memory, and not written out to disk at present, so avoid	  writing to files smaller than about 1kiB.	- Implement ->truncate (fs/ntfs/inode.c::ntfs_truncate()) and	  ->setattr() (fs/ntfs/inode.c::ntfs_setattr()) inode operations for	  files with the purpose of intercepting and aborting all i_size	  changes which we do not support yet. ntfs_truncate() actually only	  emits a warning message but AFAICS our interception of i_size changes	  elsewhere means ntfs_truncate() never gets called for i_size changes.	  It is only called from generic_file_write() when we fail in	  ntfs_prepare_{,nonresident_}write() in order to discard any	  instantiated buffers beyond i_size. Thus i_size is not actually	  changed so our warning message is enough. Unfortunately it is not	  possible to easily determine if i_size is being changed or not hence	  we just emit an appropriately worded error message.2.0.25 - Small bug fixes and cleanups.	- Unlock the page in an out of memory error code path in	  fs/ntfs/aops.c::ntfs_read_block().	- If fs/ntfs/aops.c::ntfs_read_page() is called on an uptodate page,	  just unlock the page and return. (This can happen due to ->writepage	  clearing PageUptodate() during write out of MstProtected()	  attributes.	- Remove leaked write code again.2.0.24 - Cleanups.	- Treat BUG_ON() as ASSERT() not VERIFY(), i.e. do not use side effects	  inside BUG_ON(). (Adam J. Richter)	- Split logical OR expressions inside BUG_ON() into individual BUG_ON()	  calls for improved debugging. (Adam J. Richter)	- Add errors flag to the ntfs volume state, accessed via	  NVol{,Set,Clear}Errors(vol).	- Do not allow read-write remounts of read-only volumes with errors.	- Clarify comment for ntfs file operation sendfile which was added by	  Christoph Hellwig a while ago (just using generic_file_sendfile())	  to say that ntfs ->sendfile is only used for the case where the	  source data is on the ntfs partition and the destination is	  somewhere else, i.e. nothing we need to concern ourselves with.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?