Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

fs-qnx6.so

Shared object that supports the Power-Safe filesystem (QNX Neutrino)

Syntax:

driver … qnx6 qnx6_options… &

Runs on:

Neutrino

Options:

hold=allow|root|deny
Control which users (if any) can suspend the taking of snapshots (via a flag in the DCMD_FSYS_FILEFLAGS devctl() command). The default is root.
overalloc
Enable a block overallocation heuristic for small file writes.
snapshot=freq
Set the frequency of automatic snapshots; the default is 10 seconds. A filesystem snapshot is explicitly made when you call sync() or fsync(), or from this periodic timer.
sync=mode
Specify the required disk synchronization capability. The mode mode must be one of the following:

Caution: If the drive doesn't support synchronizing, fs-qnx6.so can't guarantee that the filesystem is power-safe. You can use the sync option to override this requirement at your own risk. Before using this filesystem on devices — such as USB/Flash devices — other than traditional rotating hard disk drive media, check to make sure that your device meets the filesystem's requirements. For more information, see Required properties of the device,” below.

Description:

The fs-qnx6.so shared object provides support for Power-Safe (copy-on-write/snapshot) filesystems. It's automatically loaded by the devb-* drivers when mounting a Power-Safe filesystem.


Note: This filesystem uses UTF-8 encoding for presentation of its filenames; attempts to specify a filename not using UTF-8 encoding will fail (with an error of EILSEQ).

Required properties of the device

The Power-Safe filesystem was designed for and is intended for traditional rotating hard disk drive media. It operates by moving the on-disk filesystem state from one stable view to another stable view using copy-on-write (COW) to relocate modified blocks. To finalize this transition, all dirty blocks involved in the new view must be committed to persistent storage, and then a new filesystem superblock/root referencing the relocated blocks is committed.

This provides power-safe robustness, because at any point in time either the old version is completely accessible or the new version is completely accessible (with no live data being overwritten in between). Thus to mount as read-write on a given device, that device must have the following properties:

See also:

chattr, chkqnx6fs, devb-*, fs-cd.so, fs-dos.so, fs-ext2.so, fs-mac.so, fs-nt.so, fs-qnx4.so, fs-udf.so, io-blk.so, mkqnx6fs, mount, umount

Filesystems chapter of System Architecture

QNX Neutrino User's Guide: