mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-30 07:32:45 +00:00
188d28f054
Bumps [github.com/ncruces/go-sqlite3](https://github.com/ncruces/go-sqlite3) from 0.18.3 to 0.18.4. - [Release notes](https://github.com/ncruces/go-sqlite3/releases) - [Commits](https://github.com/ncruces/go-sqlite3/compare/v0.18.3...v0.18.4) --- updated-dependencies: - dependency-name: github.com/ncruces/go-sqlite3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
38 lines
917 B
Go
38 lines
917 B
Go
//go:build (amd64 || arm64 || riscv64 || ppc64le) && !sqlite3_nosys
|
|
|
|
package vfs
|
|
|
|
import (
|
|
"os"
|
|
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
const (
|
|
// https://godbolt.org/z/1PcK5vea3
|
|
_F2FS_IOC_START_ATOMIC_WRITE = 62721
|
|
_F2FS_IOC_COMMIT_ATOMIC_WRITE = 62722
|
|
_F2FS_IOC_ABORT_ATOMIC_WRITE = 62725
|
|
_F2FS_IOC_GET_FEATURES = 2147808524
|
|
_F2FS_FEATURE_ATOMIC_WRITE = 4
|
|
)
|
|
|
|
// notest
|
|
|
|
func osBatchAtomic(file *os.File) bool {
|
|
flags, err := unix.IoctlGetInt(int(file.Fd()), _F2FS_IOC_GET_FEATURES)
|
|
return err == nil && flags&_F2FS_FEATURE_ATOMIC_WRITE != 0
|
|
}
|
|
|
|
func (f *vfsFile) BeginAtomicWrite() error {
|
|
return unix.IoctlSetInt(int(f.Fd()), _F2FS_IOC_START_ATOMIC_WRITE, 0)
|
|
}
|
|
|
|
func (f *vfsFile) CommitAtomicWrite() error {
|
|
return unix.IoctlSetInt(int(f.Fd()), _F2FS_IOC_COMMIT_ATOMIC_WRITE, 0)
|
|
}
|
|
|
|
func (f *vfsFile) RollbackAtomicWrite() error {
|
|
return unix.IoctlSetInt(int(f.Fd()), _F2FS_IOC_ABORT_ATOMIC_WRITE, 0)
|
|
}
|