mirror of
https://github.com/neovim/neovim.git
synced 2025-09-27 21:48:35 +00:00
fileinfo: implement os_fileinfo_blocksize
This commit is contained in:
@@ -123,10 +123,11 @@ memfile_T *mf_open(char_u *fname, int flags)
|
||||
*/
|
||||
FileInfo file_info;
|
||||
if (mfp->mf_fd >= 0
|
||||
&& os_get_file_info_fd(mfp->mf_fd, &file_info)
|
||||
&& file_info.stat.st_blksize >= MIN_SWAP_PAGE_SIZE
|
||||
&& file_info.stat.st_blksize <= MAX_SWAP_PAGE_SIZE) {
|
||||
mfp->mf_page_size = file_info.stat.st_blksize;
|
||||
&& os_get_file_info_fd(mfp->mf_fd, &file_info)) {
|
||||
uint64_t blocksize = os_fileinfo_blocksize(&file_info);
|
||||
if (blocksize >= MIN_SWAP_PAGE_SIZE && blocksize <= MAX_SWAP_PAGE_SIZE) {
|
||||
mfp->mf_page_size = blocksize;
|
||||
}
|
||||
}
|
||||
|
||||
if (mfp->mf_fd < 0 || (flags & (O_TRUNC|O_EXCL))
|
||||
|
@@ -412,6 +412,15 @@ uint64_t os_fileinfo_hardlinks(const FileInfo *file_info)
|
||||
return file_info->stat.st_nlink;
|
||||
}
|
||||
|
||||
/// Get the blocksize from a `FileInfo`.
|
||||
///
|
||||
/// @return blocksize in bytes.
|
||||
uint64_t os_fileinfo_blocksize(const FileInfo *file_info)
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
return file_info->stat.st_blksize;
|
||||
}
|
||||
|
||||
/// Get the `FileID` for a given path
|
||||
///
|
||||
/// @param path Path to the file.
|
||||
|
Reference in New Issue
Block a user