September 21, 2008 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;
        };

    `

  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.

```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.

```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 NetBSD2.0.

### BUGS

This driver is experimental. Be sure you have a backup before you use it.