OSDN Git Service

android-x86/external-exfat.git
8 years agoFix return codes from exfat_close() and exfat_fsync().
relan [Fri, 23 Aug 2013 05:56:00 +0000 (05:56 +0000)]
Fix return codes from exfat_close() and exfat_fsync().

Return -EIO on error instead of 1. Also do fsync() after ublio_fsync():
ublio_fsync() does not flush changes to the disk, just writes them.

8 years agoFix crash on unmount under OSXFUSE.
relan [Fri, 23 Aug 2013 05:49:35 +0000 (05:49 +0000)]
Fix crash on unmount under OSXFUSE.

OSXFUSE calls fuse_exfat_fsync() for "/" which was not opened.

8 years agoHandle I/O error in exfat_flush().
relan [Tue, 6 Aug 2013 20:16:20 +0000 (20:16 +0000)]
Handle I/O error in exfat_flush().

8 years agoHandle I/O errors in exfat_flush_node().
relan [Tue, 6 Aug 2013 20:08:06 +0000 (20:08 +0000)]
Handle I/O errors in exfat_flush_node().

8 years agoClose device and free super block on failure to read boot sector.
relan [Tue, 6 Aug 2013 19:54:09 +0000 (19:54 +0000)]
Close device and free super block on failure to read boot sector.

8 years agoHandle I/O errors in erase_entry().
relan [Tue, 6 Aug 2013 19:51:50 +0000 (19:51 +0000)]
Handle I/O errors in erase_entry().

8 years agoHandle I/O errors in rename_entry().
relan [Tue, 6 Aug 2013 19:27:43 +0000 (19:27 +0000)]
Handle I/O errors in rename_entry().

8 years agoHandle I/O error in set_next_cluster().
relan [Tue, 6 Aug 2013 19:08:24 +0000 (19:08 +0000)]
Handle I/O error in set_next_cluster().

8 years agoHandle I/O error in erase_raw().
relan [Tue, 6 Aug 2013 18:59:40 +0000 (18:59 +0000)]
Handle I/O error in erase_raw().

8 years agoHandle I/O errors.
relan [Tue, 6 Aug 2013 18:56:09 +0000 (18:56 +0000)]
Handle I/O errors.

8 years agoGive the caller of pread()/pwrite() a chance to handle I/O errors.
relan [Tue, 6 Aug 2013 18:53:10 +0000 (18:53 +0000)]
Give the caller of pread()/pwrite() a chance to handle I/O errors.

8 years agoAddress clusters bitmap using size_t-sized blocks instead of bytes.
relan [Sat, 3 Aug 2013 13:25:28 +0000 (13:25 +0000)]
Address clusters bitmap using size_t-sized blocks instead of bytes.

This should be a bit faster.

8 years agoCheck max continuations count when reading file entry.
relan [Sat, 3 Aug 2013 08:42:58 +0000 (08:42 +0000)]
Check max continuations count when reading file entry.

8 years agoFix buffer overflows for file names of exactly 256 UTF-16 chars.
relan [Sat, 3 Aug 2013 08:36:54 +0000 (08:36 +0000)]
Fix buffer overflows for file names of exactly 256 UTF-16 chars.

8 years agoImplement fsync() and fsyncdir().
relan [Mon, 22 Jul 2013 18:04:26 +0000 (18:04 +0000)]
Implement fsync() and fsyncdir().

8 years agoFix license for the SConscript.
relan [Mon, 8 Jul 2013 17:00:51 +0000 (17:00 +0000)]
Fix license for the SConscript.

8 years agoRelicense the code from GPLv3+ to GPLv2+.
relan [Mon, 8 Jul 2013 07:30:45 +0000 (07:30 +0000)]
Relicense the code from GPLv3+ to GPLv2+.

8 years agoUse safer names for byteorder stuff.
relan [Mon, 8 Jul 2013 06:43:54 +0000 (06:43 +0000)]
Use safer names for byteorder stuff.

8 years agoRemove OpenBSD-specific macros.
relan [Thu, 4 Jul 2013 05:39:50 +0000 (05:39 +0000)]
Remove OpenBSD-specific macros.

There is no OpenBSD port anyway.

8 years agoRemove Solaris-specific macros.
relan [Wed, 3 Jul 2013 17:35:11 +0000 (17:35 +0000)]
Remove Solaris-specific macros.

Solaris support is broken anyway.

8 years agoFix __attribute => __attribute__.
relan [Fri, 21 Jun 2013 18:03:33 +0000 (18:03 +0000)]
Fix __attribute => __attribute__.

8 years agoUse C11 _Static_assert if it is supported by a compiler.
relan [Fri, 21 Jun 2013 17:46:03 +0000 (17:46 +0000)]
Use C11 _Static_assert if it is supported by a compiler.

8 years agoImprove STATIC_ASSERT.
relan [Thu, 13 Jun 2013 18:06:18 +0000 (18:06 +0000)]
Improve STATIC_ASSERT.

Now it can be used both inside and outside of functions.

8 years agoRemove excessive semicolons after static asserts.
relan [Sun, 9 Jun 2013 07:54:35 +0000 (07:54 +0000)]
Remove excessive semicolons after static asserts.

8 years agoMove compiler-specific code into a separate header.
relan [Sun, 9 Jun 2013 07:23:35 +0000 (07:23 +0000)]
Move compiler-specific code into a separate header.

8 years agoRemove extra error message.
relan [Tue, 4 Jun 2013 18:37:56 +0000 (18:37 +0000)]
Remove extra error message.

8 years agoUpdate volume label in struct exfat on exfat_set_label().
relan [Mon, 20 May 2013 16:41:35 +0000 (16:41 +0000)]
Update volume label in struct exfat on exfat_set_label().

8 years agoFix handling of long non-ASCII file names.
relan [Mon, 20 May 2013 16:33:27 +0000 (16:33 +0000)]
Fix handling of long non-ASCII file names.

8 years agoMove platform-specific code into a separate header.
relan [Tue, 14 May 2013 18:41:17 +0000 (18:41 +0000)]
Move platform-specific code into a separate header.

8 years agoRelax mode handling.
relan [Sat, 20 Apr 2013 10:34:48 +0000 (10:34 +0000)]
Relax mode handling.

Allow arbitrary changing of lower 9 bits of mode.
Allow owner/group changing to the same owner/group.
Remove "quiet" option.

8 years agoFix grammar in mount.exfat-fuse man page.
relan [Sat, 20 Apr 2013 10:14:22 +0000 (10:14 +0000)]
Fix grammar in mount.exfat-fuse man page.

8 years agoAdd "quiet" option.
relan [Sat, 20 Apr 2013 10:01:24 +0000 (10:01 +0000)]
Add "quiet" option.

It makes chmod() and chown() always succeed. Useful for applications that
fail if chmod() or chown() is not implemented.

8 years agoAllow -v option for compatibility with mount utility.
relan [Fri, 29 Mar 2013 06:38:16 +0000 (06:38 +0000)]
Allow -v option for compatibility with mount utility.

mount passes -v to its helpers.

8 years agoUse getopt() for options parsing.
relan [Fri, 29 Mar 2013 06:29:10 +0000 (06:29 +0000)]
Use getopt() for options parsing.

8 years agoUse -V instead of -v option to print version.
relan [Thu, 28 Mar 2013 16:51:12 +0000 (16:51 +0000)]
Use -V instead of -v option to print version.

This is more consistent with other utilities.

8 years agoAllow -n option for automount/autofs compatibility.
relan [Mon, 18 Mar 2013 18:37:25 +0000 (18:37 +0000)]
Allow -n option for automount/autofs compatibility.

8 years agoAvoid extra erase on writes to the end of a file.
relan [Tue, 26 Feb 2013 18:58:36 +0000 (18:58 +0000)]
Avoid extra erase on writes to the end of a file.

8 years agoAdd fsname parameter as is.
relan [Wed, 13 Feb 2013 16:41:44 +0000 (16:41 +0000)]
Add fsname parameter as is.

Do not do canonicalization and symbolic links expansion. This fixes
TrueCrypt disks unmounting.

8 years agoUse bool type.
relan [Sun, 10 Feb 2013 21:04:01 +0000 (21:04 +0000)]
Use bool type.

8 years agoMake next_entry() function static.
relan [Sat, 26 Jan 2013 06:42:13 +0000 (06:42 +0000)]
Make next_entry() function static.

8 years agoFix unexpected removal of a directory if it is moved into itself.
relan [Fri, 25 Jan 2013 19:07:05 +0000 (19:07 +0000)]
Fix unexpected removal of a directory if it is moved into itself.

Return EINVAL in this situation. It also happens when trying to change
directory name case.

8 years agoFix "Operation not permitted" error on reading an empty file.
relan [Fri, 25 Jan 2013 17:46:10 +0000 (17:46 +0000)]
Fix "Operation not permitted" error on reading an empty file.

FUSE read/write ops should return a number of bytes actually read/written
or -errno on error.

8 years agoBump version to 1.0.0 and update changelog.
relan [Sat, 19 Jan 2013 13:45:41 +0000 (13:45 +0000)]
Bump version to 1.0.0 and update changelog.

8 years agoUpdate copyright years.
relan [Sat, 19 Jan 2013 13:11:28 +0000 (13:11 +0000)]
Update copyright years.

8 years agoFix allocation of a cluster beyond valid clusters range.
relan [Mon, 14 Jan 2013 18:54:42 +0000 (18:54 +0000)]
Fix allocation of a cluster beyond valid clusters range.

8 years agoAvoid using PATH_MAX constant.
relan [Fri, 11 Jan 2013 07:31:16 +0000 (07:31 +0000)]
Avoid using PATH_MAX constant.

8 years agoOS X: disable permission checks made by FUSE.
relan [Fri, 11 Jan 2013 06:42:18 +0000 (06:42 +0000)]
OS X: disable permission checks made by FUSE.

8 years agoRemove duplicate code in reset_cache().
relan [Thu, 10 Jan 2013 17:09:43 +0000 (17:09 +0000)]
Remove duplicate code in reset_cache().

Now it uses tree_detach() to remove children from the list and the whole
tree is consistent at any iteration.

8 years agoMove tree_attach() and tree_detach() upper.
relan [Thu, 10 Jan 2013 17:00:27 +0000 (17:00 +0000)]
Move tree_attach() and tree_detach() upper.

Now they can be used by reset_cache().

8 years agoFix extra decrement of reference counter of hanging nodes.
relan [Wed, 9 Jan 2013 17:50:14 +0000 (17:50 +0000)]
Fix extra decrement of reference counter of hanging nodes.

8 years agoFix cleaning of libexfat broken in r312.
relan [Wed, 9 Jan 2013 17:29:32 +0000 (17:29 +0000)]
Fix cleaning of libexfat broken in r312.

8 years agoGet PATH and SYSROOT variables from the environment.
relan [Wed, 9 Jan 2013 16:58:00 +0000 (16:58 +0000)]
Get PATH and SYSROOT variables from the environment.

8 years agoRespect AR and RANLIB environment variables in SConscript.
relan [Wed, 9 Jan 2013 16:54:08 +0000 (16:54 +0000)]
Respect AR and RANLIB environment variables in SConscript.

Signed-off-by: <vapier@gmail.com>
8 years agoSeek to the beginning of the device after detecting its size.
relan [Sat, 29 Dec 2012 08:01:07 +0000 (08:01 +0000)]
Seek to the beginning of the device after detecting its size.

dumpexfat relies on this.

8 years agoPrint device name in the error message.
relan [Sat, 29 Dec 2012 07:55:29 +0000 (07:55 +0000)]
Print device name in the error message.

8 years agoFix indentation.
relan [Wed, 26 Dec 2012 07:26:48 +0000 (07:26 +0000)]
Fix indentation.

8 years agoImprove trace macros.
relan [Wed, 26 Dec 2012 07:14:07 +0000 (07:14 +0000)]
Improve trace macros.

8 years agoEnable big_writes.
relan [Tue, 25 Dec 2012 17:50:04 +0000 (17:50 +0000)]
Enable big_writes.

This improves write speed (larger block size means less switches between
kernel- and user-space).

8 years agoFix fuse_exfat_read() and fuse_exfat_write() return values.
relan [Tue, 25 Dec 2012 16:58:23 +0000 (16:58 +0000)]
Fix fuse_exfat_read() and fuse_exfat_write() return values.

FUSE read and write ops should return either buffer size on success or EOF
on error.

8 years agoFix exfat_generic_pwrite().
relan [Tue, 25 Dec 2012 16:55:13 +0000 (16:55 +0000)]
Fix exfat_generic_pwrite().

It should return -1 on error, not -errno.

8 years agoReplace fixed PATH to the value from the environment.
relan [Wed, 19 Dec 2012 06:30:24 +0000 (06:30 +0000)]
Replace fixed PATH to the value from the environment.

This makes scons find build tools in non-standard directories specified
in the PATH variable.

8 years agoCheck compiler presense in SConscript.
relan [Wed, 19 Dec 2012 06:19:14 +0000 (06:19 +0000)]
Check compiler presense in SConscript.

8 years agoCheck size of off_t type in SConscript.
relan [Tue, 18 Dec 2012 18:42:39 +0000 (18:42 +0000)]
Check size of off_t type in SConscript.

8 years agoDo not configure when cleaning.
relan [Tue, 18 Dec 2012 18:17:01 +0000 (18:17 +0000)]
Do not configure when cleaning.

8 years agoRemove symlinks on cleaning the install alias.
relan [Tue, 18 Dec 2012 18:06:17 +0000 (18:06 +0000)]
Remove symlinks on cleaning the install alias.

8 years agoFix crash in exfat_rename().
relan [Sat, 15 Dec 2012 08:51:09 +0000 (08:51 +0000)]
Fix crash in exfat_rename().

Crash happened when renaming a file within a single directory and a new
name differs only in case.

8 years agoOS X: fix raw device size detection.
relan [Sat, 15 Dec 2012 08:45:00 +0000 (08:45 +0000)]
OS X: fix raw device size detection.

Each disk has two names: /dev/diskN (block device) and /dev/rdiskN (raw
device).

8 years agoUse bool type.
relan [Wed, 12 Dec 2012 19:16:42 +0000 (19:16 +0000)]
Use bool type.

8 years agoOS X: correctly detect device size.
relan [Wed, 12 Dec 2012 19:14:36 +0000 (19:14 +0000)]
OS X: correctly detect device size.

8 years agoRename exfat_mode() to exfat_get_mode().
relan [Tue, 11 Dec 2012 16:46:55 +0000 (16:46 +0000)]
Rename exfat_mode() to exfat_get_mode().

8 years agoRemove extra include.
relan [Tue, 11 Dec 2012 16:45:27 +0000 (16:45 +0000)]
Remove extra include.

8 years agoCheck file size after all name entries are parsed.
relan [Sat, 8 Dec 2012 12:32:33 +0000 (12:32 +0000)]
Check file size after all name entries are parsed.

Also print file name in case of error.

8 years agoDo not print directory name on size check failure.
relan [Sat, 8 Dec 2012 11:53:58 +0000 (11:53 +0000)]
Do not print directory name on size check failure.

Name is not yet available at that moment.

8 years agoUse bool type.
relan [Sat, 8 Dec 2012 11:51:34 +0000 (11:51 +0000)]
Use bool type.

8 years agoOS X: set deployment target to Mac OS X 10.5 Leopard.
relan [Sat, 8 Dec 2012 11:46:15 +0000 (11:46 +0000)]
OS X: set deployment target to Mac OS X 10.5 Leopard.

8 years agoDo BLKROGET ioctl to make sure the device is not read-only.
relan [Tue, 4 Dec 2012 19:17:52 +0000 (19:17 +0000)]
Do BLKROGET ioctl to make sure the device is not read-only.

After "blockdev --setro" Linux kernel still allows to open the device in
read-write mode but fails writes.

8 years agoRefactor device access mode handling.
relan [Tue, 4 Dec 2012 18:34:01 +0000 (18:34 +0000)]
Refactor device access mode handling.

8 years agoImprove OS X support.
relan [Tue, 4 Dec 2012 16:34:03 +0000 (16:34 +0000)]
Improve OS X support.

Use proper macro for inode numbers bitness management.
Switch to 64-bit inode numbers (this requires Mac OS X 10.5 or later).
Switch from unmaintained MacFUSE to OSXFUSE (http://osxfuse.github.com).

8 years agoAdd empty chmod() handler.
relan [Tue, 4 Dec 2012 16:14:38 +0000 (16:14 +0000)]
Add empty chmod() handler.

OS X utilities report error if fchmod() fails. Use an empty handler as a
workaround.

8 years agoImprove invalid clusters handling.
relan [Sun, 25 Nov 2012 12:03:51 +0000 (12:03 +0000)]
Improve invalid clusters handling.

8 years agoReorganize directories checking.
relan [Sat, 24 Nov 2012 09:36:35 +0000 (09:36 +0000)]
Reorganize directories checking.

Check directory before its files, do not check files if directory is
corrupt, check root directory.

8 years agoImprove error handling.
relan [Sun, 28 Oct 2012 15:14:25 +0000 (15:14 +0000)]
Improve error handling.

8 years agoBump version to 0.9.8 and update changelog.
relan [Thu, 9 Aug 2012 17:09:46 +0000 (17:09 +0000)]
Bump version to 0.9.8 and update changelog.

8 years agoAvoid integer truncation.
relan [Sat, 9 Jun 2012 18:32:49 +0000 (18:32 +0000)]
Avoid integer truncation.

8 years agoFix erasing of label buffer.
relan [Sat, 9 Jun 2012 18:28:22 +0000 (18:28 +0000)]
Fix erasing of label buffer.

8 years agoThe new mkfs rewritten in more declarative style.
relan [Sat, 2 Jun 2012 06:14:13 +0000 (06:14 +0000)]
The new mkfs rewritten in more declarative style.

8 years agoExplicitly require C99 and define _GNU_SOURCE.
relan [Fri, 18 May 2012 16:05:13 +0000 (16:05 +0000)]
Explicitly require C99 and define _GNU_SOURCE.

This enables all needed functions.

8 years agoDefine FUSE_USE_VERSION only before inclusion of fuse.h.
relan [Fri, 18 May 2012 15:52:30 +0000 (15:52 +0000)]
Define FUSE_USE_VERSION only before inclusion of fuse.h.

No need to define it globally.

8 years agoFix _FILE_OFFSET_BITS check: it can be not defined at all.
relan [Fri, 18 May 2012 15:45:38 +0000 (15:45 +0000)]
Fix _FILE_OFFSET_BITS check: it can be not defined at all.

8 years agoUpdate copyright years in SConscript.
relan [Fri, 18 May 2012 15:42:49 +0000 (15:42 +0000)]
Update copyright years in SConscript.

8 years agoRespect CPPFLAGS environment variable in SConscript.
relan [Thu, 17 May 2012 16:32:08 +0000 (16:32 +0000)]
Respect CPPFLAGS environment variable in SConscript.

Signed-off-by: Sven Hoexter <sven@timegate.de>
8 years agoFix handling of characters beyond BMP.
relan [Mon, 14 May 2012 17:24:02 +0000 (17:24 +0000)]
Fix handling of characters beyond BMP.

UTF-16 surrogate pairs encode Unicode character minus 0x10000.

Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
8 years agoFix file name in heading.
relan [Mon, 7 May 2012 07:32:43 +0000 (07:32 +0000)]
Fix file name in heading.

8 years agoUpdate copyright years.
relan [Tue, 1 May 2012 09:46:02 +0000 (09:46 +0000)]
Update copyright years.

8 years agoEcho messages to syslog only if stderr is not attached to terminal.
relan [Tue, 3 Apr 2012 17:52:49 +0000 (17:52 +0000)]
Echo messages to syslog only if stderr is not attached to terminal.

8 years agoSuggest valid cluster size if user specified too small value.
relan [Mon, 19 Mar 2012 17:27:34 +0000 (17:27 +0000)]
Suggest valid cluster size if user specified too small value.

8 years agoSelect suitable cluster size when creating a huge FS.
relan [Mon, 19 Mar 2012 17:12:00 +0000 (17:12 +0000)]
Select suitable cluster size when creating a huge FS.

Relevant for file systems sizes of 128 TB or more.

8 years agoFail to create FS if specified cluster size is too small.
relan [Sun, 18 Mar 2012 13:24:37 +0000 (13:24 +0000)]
Fail to create FS if specified cluster size is too small.

8 years agoAdd constant for the last possible valid cluster number.
relan [Sun, 18 Mar 2012 13:05:04 +0000 (13:05 +0000)]
Add constant for the last possible valid cluster number.

8 years agoFix huge sizes formatting.
relan [Sun, 18 Mar 2012 13:02:49 +0000 (13:02 +0000)]
Fix huge sizes formatting.