| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The readv() and writev() support was implemented in terms of multiple
calls to the read and write handlers. This imposes a problem on device
files which use an IO vector as single request entity. For example a
low-level network device (e.g. BPF(4)) may use an IO vector to create
one frame from multiple protocol layers each with its own IO vector
entry.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Also eliminates possibly dead code in case the name_type can never
actually be MSDOS_NAME_INVALID.
1063860 Logically dead code.
|
|
|
|
| |
Change the type for storing the return from iconv to be signed.
|
|
|
|
|
| |
Fix the type of "cmpltd" to be ssize_t so that assigning it to -1
will terminate processing as intended.
|
|
|
|
| |
Explicitly promote 32-bit integer to 64-bits for multiplication.
|
|
|
|
| |
This area is protected by the FAT file system instance lock.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add optional conversion methods for multibyte strings. With these
conversions which make use of iconv and utf8proc it becomes possible to
use strings from any language (Czech, Chinese, Arabian, Hebrew, Corean,
...) for file names and directory names.
NOTE: Iconv support must be activated during the build of the tool chain
for these conversion methods (options --enable-newlib-iconv
--enable-newlib-iconv-encodings=[ENCODINGS_YOU_WANT]). Alternatively
you can provide your own conversion methods.
|
|
|
|
|
|
|
|
|
| |
User interface and backwards compatibility for UTF-8 support in the FAT
file system. Purpose of UTF-8 support is to permit file names and
directory names with characters from all kinds of languages (Czech,
Chinese, Arabian, Hebrew, Korean, ...). This commit does not yet
support multibyte characters. It only contains the user interface and
the backwards compatibility.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Simpify the loop. Set last cluster to an undefined value in case no
free cluster exists.
|
|
|
|
|
|
| |
Only append a valid cluster chain (cluster added > 0), otherwise we
overwrite the root directory cluster (cluster 0) of a FAT12 or FAT16
with arbitrary data.
|
| |
|
|
|
|
|
| |
Release the buffers also if this is not the last reference to the file
object since otherwise we may hold modified data indefinitely.
|
|
|
|
|
| |
This is the result of a sed script which converts all uses
of @{ into a consistent form.
|
| |
|
|
|
|
|
|
| |
There were minor conflicts and the modifications that were
in the repo were favored over the modifications in the submitted
patch.
|
| |
|
| |
|
|
|
|
|
|
| |
The success of a block size change depends on the bdbuf configuration.
Do not treat a failed block size change as a hard error. This is only a
missed performance optimization.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Return the ability to set a cluster size other than one sector for
unaligned volumes.
|
|
|
|
|
|
| |
Separate cluster write from sector write for quick file write.
New test fstests/fsdosfswrite01.
|
|
|
|
|
|
| |
Change block size of bdbuf to the cluster size if the data clusters are
aligned on a cluster boundary. This enables fast access to data
clusters.
|
| |
|
|
|
|
|
|
|
|
| |
Delete fattype parameter of msdos_format_request_param_t because the FAT
type is determined by cluster and disk size.
Estimate FAT type and re-evaluate FAT type after exact parameter
determination.
|
|
|
|
|
|
|
|
|
|
| |
Add skip_alignment parameter of msdos_format_request_param_t. Delete
cluster_align parameter of msdos_format_request_param_t.
By default the FAT, data cluster, and root directory for FAT12 and FAT16
is aligned on a cluster boundary to optimize performance.
Format changes throughout.
|
|
|
|
|
|
| |
For FAT32 msdos_format() used to initialize first FAT entries to
non-zero values only if a volume label was given. Absence of these
entries made mounting such a FAT32 volume fail.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The FAT32 FS info sector contains hints for the free cluster count and
the next free cluster. The previous code read these values during mount
and replaced them with invalid values. The shutdown operation updated
them with the current values. These values are only hints. Every FAT
implementation must cope with arbitrary values. They are intended to
speed up certain operations.
Now we update the free cluster count and next free culster in the FAT32
FS info sector only during unmount or sync operations and only if the
values have changed. This avoids writes to the FS info sector and
conforms to the behaviour of Linux and Windows.
The application can force an update of these values now with the fsync()
and fdatasync() operations. Applications that only read will perform
not write operations to the FAT32 FS info sector.
The new fat_sync() function performs all non-file specific
synchronizations.
|
| |
|
|
|
|
|
|
|
| |
Reject the removal of file system instance root nodes in rmdir() and
unlink() and return the EBUSY error status. File system instances can
be removed with unmount(). Remove root node special cases in IMFS,
DOSFS, and RFS.
|
| |
|
|
|
|
|
|
| |
The file size was wrong in the no space left on device condition. This
resulted in turn in a read of an invalid block which lead to an EIO
error status.
|