diff options
-rw-r--r-- | toys/other/fsfreeze.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/toys/other/fsfreeze.c b/toys/other/fsfreeze.c new file mode 100644 index 00000000..f7b8a946 --- /dev/null +++ b/toys/other/fsfreeze.c @@ -0,0 +1,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 = xopen(*toys.optargs, O_RDONLY); + long p = 1; + + xioctl(fd, (toys.optflags & FLAG_f) ? FIFREEZE : FITHAW, &p); + xclose(fd); +} |