xref: /aosp_15_r20/external/toybox/toys/other/fsfreeze.c (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker /* fsfreeze.c - freeze or thaw filesystem
2*cf5a6c84SAndroid Build Coastguard Worker  *
3*cf5a6c84SAndroid Build Coastguard Worker  * No standard.
4*cf5a6c84SAndroid Build Coastguard Worker 
5*cf5a6c84SAndroid Build Coastguard Worker USE_FSFREEZE(NEWTOY(fsfreeze, "<1>1f|u|[!fu]", TOYFLAG_USR|TOYFLAG_SBIN))
6*cf5a6c84SAndroid Build Coastguard Worker 
7*cf5a6c84SAndroid Build Coastguard Worker config FSFREEZE
8*cf5a6c84SAndroid Build Coastguard Worker   bool "fsfreeze"
9*cf5a6c84SAndroid Build Coastguard Worker   default y
10*cf5a6c84SAndroid Build Coastguard Worker   help
11*cf5a6c84SAndroid Build Coastguard Worker     usage: fsfreeze {-f | -u} MOUNTPOINT
12*cf5a6c84SAndroid Build Coastguard Worker 
13*cf5a6c84SAndroid Build Coastguard Worker     Freeze or unfreeze a filesystem.
14*cf5a6c84SAndroid Build Coastguard Worker 
15*cf5a6c84SAndroid Build Coastguard Worker     -f	Freeze
16*cf5a6c84SAndroid Build Coastguard Worker     -u	Unfreeze
17*cf5a6c84SAndroid Build Coastguard Worker */
18*cf5a6c84SAndroid Build Coastguard Worker 
19*cf5a6c84SAndroid Build Coastguard Worker #define FOR_fsfreeze
20*cf5a6c84SAndroid Build Coastguard Worker #include "toys.h"
21*cf5a6c84SAndroid Build Coastguard Worker #include <linux/fs.h>
22*cf5a6c84SAndroid Build Coastguard Worker 
fsfreeze_main(void)23*cf5a6c84SAndroid Build Coastguard Worker void fsfreeze_main(void)
24*cf5a6c84SAndroid Build Coastguard Worker {
25*cf5a6c84SAndroid Build Coastguard Worker   int fd = xopenro(*toys.optargs);
26*cf5a6c84SAndroid Build Coastguard Worker   long p = 1;
27*cf5a6c84SAndroid Build Coastguard Worker 
28*cf5a6c84SAndroid Build Coastguard Worker   xioctl(fd, FLAG(f) ? FIFREEZE : FITHAW, &p);
29*cf5a6c84SAndroid Build Coastguard Worker   xclose(fd);
30*cf5a6c84SAndroid Build Coastguard Worker }
31