您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ zero_user_segment函数代码示例

51自学网 2021-06-03 11:58:56
  C++
这篇教程C++ zero_user_segment函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中zero_user_segment函数的典型用法代码示例。如果您正苦于以下问题:C++ zero_user_segment函数的具体用法?C++ zero_user_segment怎么用?C++ zero_user_segment使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了zero_user_segment函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: zero_page_vector_range

/* * Zero an extent within a page vector.  Offset is relative to the * start of the first page. */static void zero_page_vector_range(int off, int len, struct page **pages){	int i = off >> PAGE_CACHE_SHIFT;	off &= ~PAGE_CACHE_MASK;	dout("zero_page_vector_page %u~%u/n", off, len);	/* leading partial page? */	if (off) {		int end = min((int)PAGE_CACHE_SIZE, off + len);		dout("zeroing %d %p head from %d/n", i, pages[i],		     (int)off);		zero_user_segment(pages[i], off, end);		len -= (end - off);		i++;	}	while (len >= PAGE_CACHE_SIZE) {		dout("zeroing %d %p len=%d/n", i, pages[i], len);		zero_user_segment(pages[i], 0, PAGE_CACHE_SIZE);		len -= PAGE_CACHE_SIZE;		i++;	}	/* trailing partial page? */	if (len) {		dout("zeroing %d %p tail to %d/n", i, pages[i], (int)len);		zero_user_segment(pages[i], 0, len);	}}
开发者ID:mikebyrne,项目名称:linux-2.6,代码行数:33,


示例2: f2fs_read_inline_data

int f2fs_read_inline_data(struct inode *inode, struct page *page){	struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);	struct page *ipage;	void *src_addr, *dst_addr;	if (page->index) {		zero_user_segment(page, 0, PAGE_CACHE_SIZE);		goto out;	}	ipage = get_node_page(sbi, inode->i_ino);	if (IS_ERR(ipage)) {		unlock_page(page);		return PTR_ERR(ipage);	}	zero_user_segment(page, MAX_INLINE_DATA, PAGE_CACHE_SIZE);	/* Copy the whole inline data block */	src_addr = inline_data_addr(ipage);	dst_addr = kmap(page);	memcpy(dst_addr, src_addr, MAX_INLINE_DATA);	kunmap(page);	f2fs_put_page(ipage, 1);out:	SetPageUptodate(page);	unlock_page(page);	return 0;}
开发者ID:7799,项目名称:linux,代码行数:32,


示例3: rawfs_writepage

static int rawfs_writepage(struct page *page, struct writeback_control *wbc){	struct address_space *mapping = page->mapping;	struct inode *inode;	unsigned long end_index;	char *buffer;	int n_written = 0;	unsigned n_bytes;	loff_t i_size;	if (!mapping)		BUG();	inode = mapping->host;	if (!inode)		BUG();	i_size = i_size_read(inode);	end_index = i_size >> PAGE_CACHE_SHIFT;	if (page->index < end_index)		n_bytes = PAGE_CACHE_SIZE;	else {		n_bytes = i_size & (PAGE_CACHE_SIZE - 1);		if (page->index > end_index || !n_bytes) {			zero_user_segment(page, 0, PAGE_CACHE_SIZE);			set_page_writeback(page);			unlock_page(page);			end_page_writeback(page);			return 0;		}	}	if (n_bytes != PAGE_CACHE_SIZE)		zero_user_segment(page, n_bytes, PAGE_CACHE_SIZE);	get_page(page);	buffer = kmap(page);    /*	n_written = yaffs_wr_file(obj, buffer,				  page->index << PAGE_CACHE_SHIFT, n_bytes, 0);    */    n_written = rawfs_write_file(inode, buffer, n_bytes,        page->index << PAGE_CACHE_SHIFT);	kunmap(page);	set_page_writeback(page);	unlock_page(page);	end_page_writeback(page);	put_page(page);	return (n_written == n_bytes) ? 0 : -ENOSPC;}
开发者ID:4Fwolf,项目名称:motorola-hawk-kernel-3.4.67,代码行数:55,


示例4: f2fs_read_inline_data

int f2fs_read_inline_data(struct inode *inode, struct page *page){    struct page *ipage;    ipage = get_node_page(F2FS_I_SB(inode), inode->i_ino);    if (IS_ERR(ipage)) {        unlock_page(page);        return PTR_ERR(ipage);    }    if (!f2fs_has_inline_data(inode)) {        f2fs_put_page(ipage, 1);        return -EAGAIN;    }    if (page->index)        zero_user_segment(page, 0, PAGE_CACHE_SIZE);    else        read_inline_data(page, ipage);    SetPageUptodate(page);    f2fs_put_page(ipage, 1);    unlock_page(page);    return 0;}
开发者ID:ench0,项目名称:android_kernel_samsung_hltet,代码行数:25,


示例5: ext4_readpage_inline

int ext4_readpage_inline(struct inode *inode, struct page *page){	int ret = 0;	down_read(&EXT4_I(inode)->xattr_sem);	if (!ext4_has_inline_data(inode)) {		up_read(&EXT4_I(inode)->xattr_sem);		return -EAGAIN;	}	/*	 * Current inline data can only exist in the 1st page,	 * So for all the other pages, just set them uptodate.	 */	if (!page->index)		ret = ext4_read_inline_page(inode, page);	else if (!PageUptodate(page)) {		zero_user_segment(page, 0, PAGE_CACHE_SIZE);		SetPageUptodate(page);	}	up_read(&EXT4_I(inode)->xattr_sem);	unlock_page(page);	return ret >= 0 ? 0 : ret;}
开发者ID:shengwenhui,项目名称:aufs4-linux,代码行数:26,


示例6: f2fs_vm_page_mkwrite

static int f2fs_vm_page_mkwrite(struct vm_area_struct *vma,						struct vm_fault *vmf){	struct page *page = vmf->page;	struct inode *inode = file_inode(vma->vm_file);	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);	struct dnode_of_data dn;	int err;	f2fs_balance_fs(sbi);	vfs_check_frozen(inode->i_sb, SB_FREEZE_WRITE);	f2fs_bug_on(sbi, f2fs_has_inline_data(inode));	/* block allocation */	f2fs_lock_op(sbi);	set_new_dnode(&dn, inode, NULL, NULL, 0);	err = f2fs_reserve_block(&dn, page->index);	if (err) {		f2fs_unlock_op(sbi);		goto out;	}	f2fs_put_dnode(&dn);	f2fs_unlock_op(sbi);	file_update_time(vma->vm_file);	lock_page(page);	if (unlikely(page->mapping != inode->i_mapping ||			page_offset(page) > i_size_read(inode) ||			!PageUptodate(page))) {		unlock_page(page);		err = -EFAULT;		goto out;	}	/*	 * check to see if the page is mapped already (no holes)	 */	if (PageMappedToDisk(page))		goto mapped;	/* page is wholly or partially inside EOF */	if (((page->index + 1) << PAGE_CACHE_SHIFT) > i_size_read(inode)) {		unsigned offset;		offset = i_size_read(inode) & ~PAGE_CACHE_MASK;		zero_user_segment(page, offset, PAGE_CACHE_SIZE);	}	set_page_dirty(page);	SetPageUptodate(page);	trace_f2fs_vm_page_mkwrite(page, DATA);mapped:	/* fill the page */	f2fs_wait_on_page_writeback(page, DATA);	/* if gced page is attached, don't write to cold segment */	clear_cold_data(page);out:	return block_page_mkwrite_return(err);}
开发者ID:handelxh,项目名称:ONEPLUS2RAZOR,代码行数:60,


示例7: f2fs_convert_inline_dir

/* * NOTE: ipage is grabbed by caller, but if any error occurs, we should * release ipage in this function. */static int f2fs_convert_inline_dir(struct inode *dir, struct page *ipage,				struct f2fs_inline_dentry *inline_dentry){	struct page *page;	struct dnode_of_data dn;	struct f2fs_dentry_block *dentry_blk;	int err;	page = grab_cache_page(dir->i_mapping, 0);	if (!page) {		f2fs_put_page(ipage, 1);		return -ENOMEM;	}	set_new_dnode(&dn, dir, ipage, NULL, 0);	err = f2fs_reserve_block(&dn, 0);	if (err)		goto out;	f2fs_wait_on_page_writeback(page, DATA);	zero_user_segment(page, MAX_INLINE_DATA, PAGE_CACHE_SIZE);	dentry_blk = kmap_atomic(page);	/* copy data from inline dentry block to new dentry block */	memcpy(dentry_blk->dentry_bitmap, inline_dentry->dentry_bitmap,					INLINE_DENTRY_BITMAP_SIZE);	memset(dentry_blk->dentry_bitmap + INLINE_DENTRY_BITMAP_SIZE, 0,			SIZE_OF_DENTRY_BITMAP - INLINE_DENTRY_BITMAP_SIZE);	/*	 * we do not need to zero out remainder part of dentry and filename	 * field, since we have used bitmap for marking the usage status of	 * them, besides, we can also ignore copying/zeroing reserved space	 * of dentry block, because them haven't been used so far.	 */	memcpy(dentry_blk->dentry, inline_dentry->dentry,			sizeof(struct f2fs_dir_entry) * NR_INLINE_DENTRY);	memcpy(dentry_blk->filename, inline_dentry->filename,					NR_INLINE_DENTRY * F2FS_SLOT_LEN);	kunmap_atomic(dentry_blk);	SetPageUptodate(page);	set_page_dirty(page);	/* clear inline dir and flag after data writeback */	truncate_inline_inode(ipage, 0);	stat_dec_inline_dir(dir);	clear_inode_flag(F2FS_I(dir), FI_INLINE_DENTRY);	if (i_size_read(dir) < PAGE_CACHE_SIZE) {		i_size_write(dir, PAGE_CACHE_SIZE);		set_inode_flag(F2FS_I(dir), FI_UPDATE_DIR);	}	sync_inode_page(&dn);out:	f2fs_put_page(page, 1);	return err;}
开发者ID:anrqkdrnl,项目名称:detonator,代码行数:64,


示例8: nfs_write_end

static int nfs_write_end(struct file *file, struct address_space *mapping,			loff_t pos, unsigned len, unsigned copied,			struct page *page, void *fsdata){	unsigned offset = pos & (PAGE_CACHE_SIZE - 1);	int status;	dfprintk(PAGECACHE, "NFS: write_end(%s/%s(%ld), %[email
C++ zero_v3函数代码示例
C++ zephir_update_property_zval函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。