FSS(4)

FSS(4) | Device Drivers Manual | FSS(4)

# NAME

`fss` — file system snapshot device

# SYNOPSIS

`pseudo-device fss 4`

# DESCRIPTION

The `fss` driver provides a read-only interface to the snapshot of a currently mounted file system. Reading from a `fss` device gives the view of the file system when the snapshot was taken. It can be configured via ioctl(2).

# IOCTLS

The ioctl(2) command codes below are defined in `<sys/dev/fssvar.h>`.

The (third) argument to ioctl(2) should be a pointer to the type indicated.

`FSSIOCSET(struct fss_set)`
  Configures a `fss` device.

      struct fss_set {
      	char *fss_mount;
      	char *fss_bstore;
      	blksize_t fss_csize;
      	int fss_flags;
      };

  The struct element fss_mount is the mount point of the file system. The struct element fss_bstore is either a regular file or a raw disk device where data overwritten on the file system will be saved. The struct element fss_csize is the preferred size of this data. The struct element fss_flags is the initial set of flags.

`FSSIOCGET(struct fss_get)`
  Gets the status of a `fss` device.

      struct fss_get {
      	char fsg_mount[MNAMELEN];
      	struct timeval fsg_time;
      	blksize_t fsg_csize;
      	blkcnt_t fsg_mount_size;
      	blkcnt_t fsg_bs_size;
      };

  The struct element fsg_mount is the mount point of the file system. The struct element fsg_time is the time this snapshot was taken. The struct element fsg_csize is the current size of data clusters. The struct element fsg_mount_size is the number of clusters of the file system. The struct element fsg_bs_size is the number of clusters written to the backing store.
`FSSIOCCLR`
  Unconfigures a `fss` device.
`FSSIOFSET(int)`
  Sets the flags of a `fss` device. Possible flags are:
  `FSS_UNCONFIG_ON_CLOSE`
    Unconfigure the `fss` device on the last close.
  `FSS_UNLINK_ON_CREATE`
    Unlink the backing file before the `fss` device is created.
`FSSIOFGET(int)`
  Gets the flags of a `fss` device.

# KERNEL THREADS

For each active snapshot device there is a kernel thread that handles the backing store. This thread is named fssN where N is the device minor number.

# FILES

/dev/rfss?
/dev/fss?

# SEE ALSO

fssconfig(8), mount(8), umount(8)

# HISTORY

The `fss` device appeared in NetBSD 2.0.

February 24, 2011 | NetBSD 11.0