search for: open_cur_inode_file

Displaying 3 results from an estimated 3 matches for "open_cur_inode_file".

2013 Oct 25
1
[PATCH] Btrfs: stop using vfs_read in send
...122,6 @@ struct send_ctx { struct list_head name_cache_list; int name_cache_size; - struct file *cur_inode_filp; char *read_buf; }; @@ -2128,77 +2127,6 @@ out: } /* - * Called for regular files when sending extents data. Opens a struct file - * to read from the file. - */ -static int open_cur_inode_file(struct send_ctx *sctx) -{ - int ret = 0; - struct btrfs_key key; - struct path path; - struct inode *inode; - struct dentry *dentry; - struct file *filp; - int new = 0; - - if (sctx->cur_inode_filp) - goto out; - - key.objectid = sctx->cur_ino; - key.type = BTRFS_INODE_ITEM_KEY; - key.offset...
2013 Apr 07
2
"btrfs send" fails with having too many open fd's
Hi there, i''m trying to send/receive a snapshot of my home dir for some time now, but in the end it always fails because the maximum number of open fd''s is exceeded. Kern log says: "6,7226,15012711248,-;VFS: file-max limit 799969 reached" My setup is as follows: Kernel: 3.9-rc5 btrfs-progs: compiled from git commit: commit
2013 Nov 12
0
[PATCH] Btrfs: incompatible format change to remove hole extents V4
..._path *p) { if (p->reversed) { @@ -3776,6 +3784,43 @@ out: return ret; } +static int send_hole(struct send_ctx *sctx, u64 end) +{ + struct fs_path *p = NULL; + u64 offset = sctx->cur_inode_last_extent; + u64 len; + int ret; + + p = fs_path_alloc(); + if (!p) + return -ENOMEM; + ret = open_cur_inode_file(sctx); + if (ret < 0) + goto out; + memset(sctx->read_buf, 0, BTRFS_SEND_READ_SIZE); + while (offset < end) { + len = min_t(u64, end - offset, BTRFS_SEND_READ_SIZE); + + ret = begin_cmd(sctx, BTRFS_SEND_C_WRITE); + if (ret < 0) + break; + ret = get_cur_path(sctx, sctx->cur_ino...