diff options
-rw-r--r-- | fs/fs.c | 15 | ||||
-rw-r--r-- | include/fs.h | 1 |
2 files changed, 16 insertions, 0 deletions
@@ -605,6 +605,21 @@ int protect(int fd, size_t count, unsigned long offset, int prot) } EXPORT_SYMBOL(protect); +int protect_file(const char *file, int prot) +{ + int fd, ret; + + fd = open(file, O_WRONLY); + if (fd < 0) + return fd; + + ret = protect(fd, ~0, 0, prot); + + close(fd); + + return ret; +} + void *memmap(int fd, int flags) { struct device_d *dev; diff --git a/include/fs.h b/include/fs.h index 552c4e94bb..4c03978a03 100644 --- a/include/fs.h +++ b/include/fs.h @@ -132,6 +132,7 @@ int umount(const char *pathname); /* not-so-standard functions */ int erase(int fd, size_t count, unsigned long offset); int protect(int fd, size_t count, unsigned long offset, int prot); +int protect_file(const char *file, int prot); void *memmap(int fd, int flags); #define PROT_READ 1 |