Commit Graph

160 Commits (086fd4cc0cb53fe764216ca866faf83a7c06bfb3)

Author SHA1 Message Date
elisa-laajakaista.fi!szaka 82efae551e - suppress bogus gcc warning about uninitialized 'err' variable
(Logical change 1.581)
2004-09-28 18:33:40 +00:00
(none)!yura b2f2facc29 Make ntfs_attr_record_rm use ntfs_attrlist_need and delete attribute list if it is doesn't need.
(Logical change 1.580)
2004-09-26 19:31:31 +00:00
(none)!yura 7428b93f99 - New API: attrib.[ch]::ntfs_resident_attr_record_add.
- Update ntfs_non_resident_attr_expand to use ntfs_inode_add_attrlist.
- Fixes and cleanups.

(Logical change 1.579)
2004-09-25 20:10:16 +00:00
(none)!yura bff0f300ff fixes for attribute list handling
(Logical change 1.578)
2004-09-22 19:22:40 +00:00
cantab.net!aia21 acff9f4c43 Minor updates ntfs_external_attr_find().
(Logical change 1.577)
2004-09-21 14:25:12 +00:00
(none)!yura 92f4878951 - not update initialized size in ntfs_non_resident_attr_expand
- fix compiler warnings

(Logical change 1.575)
2004-09-20 17:29:50 +00:00
cantab.net!aia21 2bf52eb259 Fix warnings and endianness conversion errors.
(Logical change 1.574)
2004-09-20 15:32:41 +00:00
cantab.net!aia21 47cc459e5b Fix typo.
(Logical change 1.573)
2004-09-20 15:27:55 +00:00
cantab.net!aia21 b83b08ec73 Clear attribute list dirty when clearing attr list presence.
(Logical change 1.572)
2004-09-20 15:14:07 +00:00
cantab.net!aia21 76fd9217b7 Remove clearing of directory flag. It is zero.
(Logical change 1.571)
2004-09-20 14:57:26 +00:00
cantab.net!aia21 9f2f8ad317 - Make ntfs_attr_open() make a copy of the attribute name unless it is
one of the internal names.  (Anton)

(Logical change 1.570)
2004-09-20 14:46:38 +00:00
(none)!yura f725bfae32 Attribute handling functions always update highest_vcn, if it was modified.
(Logical change 1.569)
2004-09-20 11:31:28 +00:00
(none)!yura 3aa1acaa90 Small update
(Logical change 1.568)
2004-09-19 19:30:37 +00:00
(none)!yura 3c5e052974 Fix highest_vcn updating for ATTRIBUTE_LIST and small endian fix.
(Logical change 1.567)
2004-09-19 18:59:25 +00:00
(none)!yura 02bda1c69a - add ntfs_attr_record_rm
- add rollback to ntfs_non_resident_attr_expand

(Logical change 1.566)
2004-09-19 14:39:47 +00:00
(none)!yura 8d7e4f3847 some fixes
(Logical change 1.565)
2004-09-18 16:40:46 +00:00
(none)!yura 921a40e14b rename: ntfs_not_resident_attr_record_add -> ntfs_non_resident_attr_record_add
ntfs_non_resident_attr_record_add:
 - add cheking for attribute can be non-resident
 - fixed bug: forgot copy name to attribute

(Logical change 1.563)
2004-09-17 16:34:45 +00:00
(none)!yura 70bdd48d07 SCCS merged
2004/09/17 19:05:41+03:00 (none)!yura
- port ntfs_make_room_for_attr from mkntfs
- add new API: ntfs_not_resident_attr_record_add
- make ntfs_not_resident_attr_expand allocate new extent records
(warning: there is no rollback at present, old is obsolete, so I removed it.
I will write new rollback as soon as possible)

(Logical change 1.562)
2004-09-17 16:07:04 +00:00
cantab.net!aia21 07b1e1a361 Add check for new attribute size being large enough
to store the attribute length in ntfs_attr_rec_resize().

(Logical change 1.561)
2004-09-16 22:43:10 +00:00
cantab.net!aia21 1159ab3656 Cleanup the ntfs_mapping_pairs_build enhancement.
(Logical change 1.548)
2004-09-13 09:31:42 +00:00
(none)!yura 27e0e7a0c7 Add @stopped_at parameter to ntfs_mapping_pairs_build and adapt all callers.
(Logical change 1.547)
2004-09-12 18:46:04 +00:00
(none)!yura a7b9eefee8 fixes for attribute list
(Logical change 1.545)
2004-09-11 16:23:34 +00:00
cantab.net!aia21 8ab5e7daf5 Fix a potential memory leak (in error code path of
ntfs_non_resident_attr_expand()).

(Logical change 1.544)
2004-09-10 13:55:47 +00:00
(none)!yura b46a0cd23d Improvement to ntfs_non_resident_attr_expand: expand multi extent
attributes if we don't need to allocate new mft records to perform
this.

(Logical change 1.543)
2004-09-09 17:21:40 +00:00
cantab.net!aia21 cbbd254b20 Export ntfs_attr_record_resize.
(Logical change 1.539)
2004-09-09 13:56:46 +00:00
cantab.net!aia21 06086ae5c7 Add start_vcn parameter to ntfs_get_size_for_mapping_pairs() and
ntfs_mapping_pairs_build() and adapt all callers.

(Logical change 1.533)
2004-09-06 09:27:16 +00:00
cantab.net!aia21 128d9a1001 Auto merged
2004/08/31 16:12:21+01:00 cantab.net!aia21
- Change ntfs_attr_make_non_resident() to only allocate clusters and attempt
  to write out data if the attribute size is not zero.  (Anton)
- Fix ntfs_non_resident_attr_expand() to use ntfs_attr_map_whole_runlist()
  instead of ntfs_attr_map_runlist().  (Anton)

(Logical change 1.519)
2004-08-31 15:37:05 +00:00
cantab.net!aia21 fcdb401959 Exclude
(Logical change 1.518)
2004-08-31 15:33:48 +00:00
(none)!yura cd3f2379db improvement to ntfs_non_resident_attr_expand:
expand multi extent attributes if we don't need to allocate new mft records to perform this.

(Logical change 1.517)
2004-08-31 14:05:19 +00:00
cantab.net!aia21 6fb1ec5e6b Fix memory leak. (Christophe Grenier)
(Logical change 1.515)
2004-08-28 21:26:52 +00:00
cantab.net!aia21 4341f051c4 Revert a change from Yuval where a bitfield was converted to a char.
(Logical change 1.509)
2004-08-20 14:49:42 +00:00
!uv 682b8dab6b Use simpler C syntax for aligning a struct.
(Logical change 1.505)
2004-08-20 12:01:17 +00:00
cantab.net!aia21 4910ed561c Change all output to only appear if configure with --enable-debug by
using Dputs/Dprintf instead of fprintf(stderr,.

(Logical change 1.502)
2004-08-18 10:27:49 +00:00
(none)!yura a40f1c30b6 * bugfix ntfs_attr_truncate: determine what we need to do with attribute (expand or shrink) from
na->data_size not from na->initialized_size
* revert code and comment update about highest in ntfs_non_resident_attr_{shrink,expand}, because
  I fixed that bug

(Logical change 1.478)
2004-08-05 19:35:51 +00:00
(none)!yura 9be1951a31 Restructure of error handling in ntfs_non_resident_attr_expand
Comments update

(Logical change 1.477)
2004-08-05 18:41:19 +00:00
(none)!yura d99c39d980 fixing bugs in ntfs_non_resident_attr_{shrink,expand} that caused not updating highest_vcn,
if it was equal to 0

(Logical change 1.476)
2004-08-05 13:20:11 +00:00
(none)!yura b2b13a1856 attrib.c::ntfs_non_resident_attr_expand
added code to restore mft record, if we failed build mapping pairs

(Logical change 1.474)
2004-08-05 09:32:27 +00:00
cantab.net!aia21 bde8048cac Fix error code paths in ntfs_non_resident_attr_expand() and also
fix starting lcn determination and set it to -1 if
there are no valid lcns in the attribute, i.e. let the
allocator choose in this case.

(Logical change 1.473)
2004-08-04 20:35:58 +00:00
cantab.net!aia21 c1427ce9c9 Move variable declaration to top of statement block.
(Logical change 1.472)
2004-08-04 19:17:50 +00:00
(none)!yura bb8ee06cad small updates
(Logical change 1.471)
2004-08-04 09:47:41 +00:00
(none)!yura 73c333a681 bugfix in ntfs_attr_map{_whole_,_}runlist: make it not fail if runlist already mapped
(Logical change 1.470)
2004-08-03 17:53:48 +00:00
(none)!yura ad91c15528 various updates and fixes
(Logical change 1.468)
2004-08-02 16:56:34 +00:00
(none)!yura 70bfea1080 Add new function attrib.c::ntfs_non_resident_attr_expand, thus we can expand non resident attributes
(Logical change 1.466)
2004-08-01 11:05:46 +00:00
(none)!yura d2fd32b481 Fix bug in ntfs_attr_size_bounds_check that caused it always fail if no maximum limit for attribute size
(Logical change 1.465)
2004-07-30 13:00:24 +00:00
(none)!yura 5d43e167d5 Fixed bug that cause ntfs_attr_p{read,write} fail on resident encrypted attribute
(Logical change 1.448)
2004-07-08 20:19:52 +00:00
cantab.net!aia21 3423a8a909 Rename uchar_t to ntfschar.
(Logical change 1.392)
2004-05-14 13:02:33 +00:00
cantab.net!aia21 a8c7b62ffc Fix some compiler warnings.
(Logical change 1.348)
2004-03-26 14:42:21 +00:00
cantab.net!aia21 b1f8254930 Remove the FIXME in ntfs_attr_lookup() and complete the
implementation of ntfs_external_attr_find() so it now returns the
attribute list attribute position at which the attribute should be
inserted in @ctx->al_entry (see descritpion for ntfs_attr_lookup() in
attrib.c for details).

(Logical change 1.343)
2004-03-22 10:42:38 +00:00
cantab.net!aia21 481241602c Change ntfs_get_attribute_value syntax to not have the MFT_RECORD as it
wasn't used anyway and the function is headed for death anyway...

(Logical change 1.332)
2004-03-15 10:54:47 +00:00
cantab.net!aia21 3c69e66ff8 In attribute lookup code in libntfs/attrib.c, check type against
AT_UNUSED and not zero.

(Logical change 1.297)
2004-03-05 11:41:37 +00:00
cantab.net!aia21 b87932368a Minor update.
(Logical change 1.292)
2004-03-04 17:03:27 +00:00
cantab.net!aia21 441947337e Include config.h before any other non-ntfs headers.
(Logical change 1.279)
2004-02-20 14:44:16 +00:00
cantab.net!aia21 e14583bed7 Fix memory leek in error code path ntfs_attr_open(). Thanks to Christophe Grenier who used Valgrind to find it.
(Logical change 1.272)
2004-01-22 23:53:36 +00:00
cantab.net!aia21 2e726fff11 Add support for compressed, resident attributes.
(Logical change 1.268)
2004-01-21 12:30:18 +00:00
cantab.net!aia21 205a5db037 Fix range checking error spotted by Szaka.
(Logical change 1.265)
2004-01-19 09:09:56 +00:00
cantab.net!aia21 c9076ef627 - Apply patch from Szaka to fix all %L to %ll.
- Fix remaining %L ti %ll (compress.c).
- Run ./autogen.sh on SuSE 9.0.

(Logical change 1.263)
2004-01-15 16:57:10 +00:00
cantab.net!aia21 57041e1a94 Auto merged
2004/01/11 18:01:31+00:00 cantab.net!aia21
update comment

(Logical change 1.260)
2004-01-11 18:01:46 +00:00
cantab.net!aia21 29e697f63a Update
2004/01/08 17:13:00+00:00 cantab.net!aia21
Add reading of compressed attributes.

(Logical change 1.259)
2004-01-09 12:38:56 +00:00
cantab.net!aia21 3244f17522 Enable lots of compiler warnings and fix warning from libntfs.
(Logical change 1.257)
2004-01-07 15:03:17 +00:00
cantab.net!aia21 549393080e finish off initial implementation of ntfs_attr_make_resident().
(Logical change 1.245)
2003-12-09 17:36:00 +00:00
cantab.net!aia21 19fcf9b688 Add ntfs_attr_map_whole_runlist().
(Logical change 1.243)
2003-12-03 15:38:52 +00:00
cantab.net!aia21 33918ceae9 Fix nasty buffer overflow bug in ntfs_get_attribute_value() which we use to get
the attribute list attribute.  This is the same bug that was biting us in the
ntfs driver 2.1.4 and was fixed in 2.1.5.  Windows XP creates files where an
attribute's data size is more than one run list run shorter than the allocated
size which causes us to crash out as we assumed this would never happen.

(Logical change 1.241)
2003-11-19 12:16:02 +00:00
cantab.net!aia21 7712504582 fix signed warnings
2003/11/03 16:11:36+00:00 cantab.net!aia21
Update what is to do to finish non-resident to resident attribute conversion.

(Logical change 1.223)
2003-11-04 13:04:07 +00:00
cantab.net!aia21 3088f60dc3 Ooops. Make it compile...
(Logical change 1.221)
2003-10-29 17:42:45 +00:00
cantab.net!aia21 8f310e5bf2 Make ntfs_attr_make_non_resident() return error EPERM if
it is called for an attribute that cannot be non-resident.
Implement ntfs_attr_can_be_resident().
Start working on ntfs_attr_make_resident().

(Logical change 1.220)
2003-10-29 17:40:03 +00:00
flatcap.org!ntfs 5587fe0549 make ntfs_attr_close a bit safer
(Logical change 1.214)
2003-10-26 12:40:40 +00:00
cantab.net!aia21 67591d0256 update
(Logical change 1.209)
2003-10-17 15:43:14 +00:00
flatcap.org!ntfs d0cc759878 Updates from Szaka
(Logical change 1.191)
2003-10-09 07:56:06 +00:00
cantab.net!aia21 7af52becdd common functions moved from diks_io.h to device.h
(Logical change 1.188)
2003-10-06 11:38:25 +00:00
cantab.net!aia21 e9bce127fa Auto merged
2003/09/24 14:13:09+01:00 cantab.net!aia21
Fix a silly bug in attrib.c::ntfs_external_attr_find() which caused
us to always return the same attribute during an enumeration as soon
as the end of the attributes to be enumerated was reached thus
causing the program doing the enumeration to hang in a tight loop.
NOTE: There is still work to do as ctx->al_entry is set to NULL
instead of to the position in the attribute list at which to insert.

(Logical change 1.182)
2003-09-24 13:16:33 +00:00
flatcap.org!flatcap cd9e3ed970 comment to help folding
(Logical change 1.177)
2003-09-05 21:37:08 +00:00
cantab.net!aia21 53340e947e Two little typo fixes.
(Logical change 1.154)
2003-07-16 15:01:54 +00:00
cantab.net!aia21 f0628dd514 Hopefully finished device io abstraction layer in the library.
(Logical change 1.138)
2003-06-02 08:53:04 +00:00
cantab.net!aia21 7e14335b3f Fix attempt to release I30 constant.
(Logical change 1.127)
2003-03-14 00:48:50 +00:00
cantab.net!aia21 726999e691 More work on attribute resizing.
(Logical change 1.126)
2003-03-11 00:06:21 +00:00
cantab.net!aia21 565f90e5e6 update
(Logical change 1.125)
2003-03-07 17:31:47 +00:00
cantab.net!aia21 1247d0e2ea More work on attribute resizing...
(Logical change 1.124)
2003-02-25 18:57:15 +00:00
cantab.net!aia21 8314ab1f9d Endian fix and attribute resize code cleanup.
(Logical change 1.122)
2003-02-18 21:40:26 +00:00
cantab.net!aia21 7103d67341 ntfs_external_attr_find(): broken error detection
(Logical change 1.121)
2003-02-13 10:27:33 +00:00
flatcap.org!flatcap b6cfa71e8f whitespace tweak
(Logical change 1.105)
2003-01-19 22:01:18 +00:00
flatcap.org!flatcap f387921c31 export find_in_attrdef
(Logical change 1.93)
2003-01-13 20:05:15 +00:00
flatcap.org!flatcap 953ac4ff86 sync with Paul
(Logical change 1.82)
2003-01-09 16:30:59 +00:00
cantab.net!aia21 ea773ce760 - New API function: ntfs_attr_can_be_non_resident().
- Check whether the attribute name needs moving when resizing the
  resident part of an attribute record.
- Create internal function ntfs_attr_find_in_attrdef().

(Logical change 1.78)
2003-01-08 10:48:09 +00:00
cantab.net!aia21 08ef32703a - Clear newly allocated space in ntfs_resident_attr_value_resize().
- Rename ntfs_resident_attr_shrink() to ntfs_resident_attr_resize()
  and make it resize upwards as well as downwards.
- Change ntfs_attr_truncate() to allow resizing upwards of resident
  attributes.

(Logical change 1.75)
2002-12-30 12:23:10 +00:00
cantab.net!aia21 2dbb7c23a5 Fix erroneusly placed err = errno.
(Logical change 1.74)
2002-12-29 21:37:21 +00:00
cantab.net!aia21 36ee87eab4 Add new API ntfs_attr_size_bounds_check().
(Logical change 1.73)
2002-12-29 17:54:10 +00:00
cantab.net!aia21 7bd63f4186 Uncomment still unused label.
(Logical change 1.72)
2002-12-29 12:17:35 +00:00
cantab.net!aia21 7b2cb8211f Add test and comments for truncation of non-resident attributes to
zero size. We should be converting such an attribute to a resident
one instead of leaving a zero size non-resident attribute.

(Logical change 1.70)
2002-12-28 22:13:06 +00:00
cantab.net!aia21 722a3eb12f Fix stupid typo bug.
(Logical change 1.69)
2002-12-28 20:10:50 +00:00
cantab.net!aia21 65f89be321 Fix truncation of resident attributes (new attribute length calculation
was incorrect).

(Logical change 1.68)
2002-12-28 19:19:05 +00:00
cantab.net!aia21 cf827730eb - Only resize resident attribute records if there is a sufficiently
large change in the length of the attribute value.
- Only deallocate clusters, truncate the runlist, and regenerate the
  mapping pairs array if the change in the non-resident attribute
  value is sufficiently large.

(Logical change 1.67)
2002-12-28 12:04:07 +00:00
cantab.net!aia21 9fd4cc17e3 Do not perform the actual write on a read-only volume!
(Logical change 1.66)
2002-12-27 23:44:01 +00:00
cantab.net!aia21 eb98ae1dca Change ntfs_rl_truncate() to take address of the runlist
rather than the runlist to allow reallocation of the runlist
buffer.

(Logical change 1.61)
2002-12-27 16:48:52 +00:00
cantab.net!aia21 928eff2891 Move some run list related functions out of attrib.[hc] into runlist.[hc].
(Logical change 1.60)
2002-12-27 16:35:17 +00:00
cantab.net!aia21 42338a8bee Typo fix.
(Logical change 1.59)
2002-12-27 16:18:10 +00:00
cantab.net!aia21 c9ca9fd9b7 - lowest_vcn is cpu endian not little endian in ntfs_external_attr_find().
- Implement ntfs_non_resident_attr_shrink() for inodes without extents.

(Logical change 1.58)
2002-12-26 20:36:52 +00:00
cantab.net!aia21 9fd51dde62 New API functions (mostly still WIP):
attrib.[hc]: ntfs_resident_attr_value_resize(), ntfs_attr_truncate()
   inode.[hc]: ntfs_inode_mark_dirty(), ntfs_inode_sync()
   lcnalloc.[hc]: ntfs_cluster_{alloc,free}()
Renamed ntfs_clusters_{read,write}() to ntfs_cluster_{read,write}().

(Logical change 1.55)
2002-12-26 00:44:57 +00:00
cantab.net!aia21 471c5423f5 Return the attribute list attribute when enumerating attributes, too.
Thanks to Szakacsits Szabolcs for pointing this problem out.

(Logical change 1.48)
2002-12-18 11:22:14 +00:00
cantab.net!aia21 151fa56ec6 Don't free extent inodes in attrib.c! (Szakacsits Szabolcs)
(Logical change 1.45)
2002-12-13 15:54:44 +00:00
cantab.net!aia21 9f426c46e5 Fix bug where the call to ntfs_attr_{put,reinit}_search_ctx() would
free the extent inode attached to the search context but leave it
attached to the base inode, so this would lead to memory corruption
and worse problems. Thanks to Szakacsits Szabolcs for spotting this.
We now don't close extent inodes any more at all and just leave it
to the closing of the base inode to dispose of all the extent inodes.

(Logical change 1.42)
2002-12-13 14:44:50 +00:00