aboutsummaryrefslogtreecommitdiff
path: root/toys/other/fsfreeze.c
blob: ee7bd530c435153ef610582fb5828b94895717d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* fsfreeze.c - freeze or thaw filesystem
 *
 * No standard.

USE_FSFREEZE(NEWTOY(fsfreeze, "<1>1f|u|[!fu]", TOYFLAG_USR|TOYFLAG_SBIN))

config FSFREEZE
  bool "fsfreeze"
  default y
  help
    usage: fsfreeze {-f | -u} MOUNTPOINT

    Freeze or unfreeze a filesystem.

    -f	Freeze
    -u	Unfreeze
*/

#define FOR_fsfreeze
#include "toys.h"
#include <linux/fs.h>

void fsfreeze_main(void)
{
  int fd = xopenro(*toys.optargs); 
  long p = 1;

  xioctl(fd, FLAG(f) ? FIFREEZE : FITHAW, &p);
  xclose(fd);
}