backing_file
extern int write_cow_header(char *cow_file, int fd, char *backing_file,
extern int init_cow_file(int fd, char *cow_file, char *backing_file,
char backing_file[PATH_LEN_V3];
char backing_file[PATH_LEN_V3];
int write_cow_header(char *cow_file, int fd, char *backing_file,
if (strlen(backing_file) > sizeof(header->backing_file) - 1) {
"limited to %zd characters\n", backing_file,
sizeof(header->backing_file) - 1);
if (absolutize(header->backing_file, sizeof(header->backing_file),
backing_file))
err = os_file_modtime(header->backing_file, &modtime);
"request failed, err = %d\n", header->backing_file,
err = cow_file_size(header->backing_file, size);
header->backing_file, -err);
if (n < offsetof(typeof(header->v1), backing_file)) {
char backing_file[PATH_LEN_V1];
file = header->v1.backing_file;
file = header->v2.backing_file;
else if (version == 3 && (*((int*)header->v3.backing_file) != 0)) {
file = header->v3.backing_file;
file = header->v3_b.backing_file;
int init_cow_file(int fd, char *cow_file, char *backing_file, int sectorsize,
err = write_cow_header(cow_file, fd, backing_file, sectorsize,
char backing_file[PATH_LEN_V2];
char *file, *backing_file, *serial;
backing_file = strsep(&str, ",:");
if (backing_file && *backing_file == '\0')
backing_file = NULL;
if (backing_file && ubd_dev->no_cow) {
ubd_dev->cow.file = backing_file;
char *backing_file;
err = read_cow_header(file_reader, &fd, &version, &backing_file, \
file = backing_file;
char *backing_file;
err = read_cow_header(file_reader, &fd, &version, &backing_file, &mtime,
asked_switch = path_requires_switch(*backing_file_out, backing_file,
*backing_file_out = backing_file;
static int create_cow_file(char *cow_file, char *backing_file,
err = init_cow_file(fd, cow_file, backing_file, sectorsize, alignment,
LOOP_ATTR_RO(backing_file);
backing_file_free(backing_file(f));
static int init_backing_file(struct backing_file *ff,
struct backing_file *ff;
#define backing_file(f) container_of(f, struct backing_file, file)
args.freeptr_offset = offsetof(struct backing_file, bf_freeptr);
__bfilp_cache = kmem_cache_create("bfilp", sizeof(struct backing_file),
return &backing_file(f)->user_path;
backing_file(f)->user_path = *path;
return backing_file(f)->security;
backing_file(f)->security = security;
static inline void backing_file_free(struct backing_file *ff)
struct file *backing_file = fuse_file_passthrough(ff);
backing_file, *ppos, len, flags);
ret = backing_file_splice_write(pipe, backing_file, &iocb, len, flags, &ctx);
struct file *backing_file = fuse_file_passthrough(ff);
backing_file, vma->vm_start, vma->vm_end);
return backing_file_mmap(backing_file, vma, &ctx);
struct file *backing_file;
backing_file = backing_file_open(file, file->f_flags,
err = PTR_ERR(backing_file);
if (IS_ERR(backing_file)) {
ff->passthrough = backing_file;
struct file *backing_file = fuse_file_passthrough(ff);
backing_file, iocb->ki_pos, count);
ret = backing_file_read_iter(backing_file, iter, iocb, iocb->ki_flags,
struct file *backing_file = fuse_file_passthrough(ff);
backing_file, iocb->ki_pos, count);
ret = backing_file_write_iter(backing_file, iter, iocb, iocb->ki_flags,
struct file *backing_file = fuse_file_passthrough(ff);
backing_file, *ppos, len, flags);
ret = backing_file_splice_read(backing_file, &iocb, pipe, len, flags, &ctx);
LSM_HOOK(int, 0, backing_file_alloc, struct file *backing_file,
LSM_HOOK(void, LSM_RET_VOID, backing_file_free, struct file *backing_file)
struct file *backing_file, struct file *user_file)
static inline int security_backing_file_alloc(struct file *backing_file,
static inline void security_backing_file_free(struct file *backing_file)
struct file *backing_file,
int security_backing_file_alloc(struct file *backing_file,
void security_backing_file_free(struct file *backing_file);
struct file *backing_file,
static int lsm_backing_file_alloc(struct file *backing_file)
backing_file_set_security(backing_file, NULL);
backing_file_set_security(backing_file, blob);
int security_backing_file_alloc(struct file *backing_file,
rc = lsm_backing_file_alloc(backing_file);
rc = call_int_hook(backing_file_alloc, backing_file, user_file);
security_backing_file_free(backing_file);
void security_backing_file_free(struct file *backing_file)
void *blob = backing_file_security(backing_file);
call_void_hook(backing_file_free, backing_file);
backing_file_set_security(backing_file, NULL);
struct file *backing_file,
if (WARN_ON_ONCE(!(backing_file->f_mode & FMODE_BACKING)))
return call_int_hook(mmap_backing_file, vma, backing_file, user_file);
static int selinux_backing_file_alloc(struct file *backing_file,
bfsec = selinux_backing_file(backing_file);
struct file *backing_file,
return selinux_mmap_file_common(backing_file, prot,
bool backing_file;
backing_file = file && (file->f_mode & FMODE_BACKING);
backing_file);
if (backing_file) {
rc = __file_map_prot_check(file, prot, shared, false, backing_file);
if (backing_file) {
selinux_backing_file(const struct file *backing_file)
void *blob = backing_file_security(backing_file);
char *file = dev->tgt.backing_file[i];
strcpy(dev->tgt.backing_file[i], ctx->files[i]);
char backing_file[MAX_BACK_FILES][PATH_MAX];