diff options
| author | Rodrigo Vivi <[email protected]> | 2018-07-23 09:13:12 -0700 | 
|---|---|---|
| committer | Rodrigo Vivi <[email protected]> | 2018-07-23 09:13:12 -0700 | 
| commit | c74a7469f97c0f40b46e82ee979f9fb1bb6e847c (patch) | |
| tree | f2690a1a916b73ef94657fbf0e0141ae57701825 /fs/f2fs/dir.c | |
| parent | 6f15a7de86c8cf2dc09fc9e6d07047efa40ef809 (diff) | |
| parent | 500775074f88d9cf5416bed2ca19592812d62c41 (diff) | |
Merge drm/drm-next into drm-intel-next-queued
We need a backmerge to get DP_DPCD_REV_14 before we push other
i915 changes to dinq that could break compilation.
Signed-off-by: Rodrigo Vivi <[email protected]>
Diffstat (limited to 'fs/f2fs/dir.c')
| -rw-r--r-- | fs/f2fs/dir.c | 76 | 
1 files changed, 35 insertions, 41 deletions
| diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index 8c9c2f31b253..7f955c4e86a4 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c @@ -60,12 +60,12 @@ static unsigned char f2fs_type_by_mode[S_IFMT >> S_SHIFT] = {  	[S_IFLNK >> S_SHIFT]	= F2FS_FT_SYMLINK,  }; -void set_de_type(struct f2fs_dir_entry *de, umode_t mode) +static void set_de_type(struct f2fs_dir_entry *de, umode_t mode)  {  	de->file_type = f2fs_type_by_mode[(mode & S_IFMT) >> S_SHIFT];  } -unsigned char get_de_type(struct f2fs_dir_entry *de) +unsigned char f2fs_get_de_type(struct f2fs_dir_entry *de)  {  	if (de->file_type < F2FS_FT_MAX)  		return f2fs_filetype_table[de->file_type]; @@ -97,14 +97,14 @@ static struct f2fs_dir_entry *find_in_block(struct page *dentry_page,  	dentry_blk = (struct f2fs_dentry_block *)page_address(dentry_page);  	make_dentry_ptr_block(NULL, &d, dentry_blk); -	de = find_target_dentry(fname, namehash, max_slots, &d); +	de = f2fs_find_target_dentry(fname, namehash, max_slots, &d);  	if (de)  		*res_page = dentry_page;  	return de;  } -struct f2fs_dir_entry *find_target_dentry(struct fscrypt_name *fname, +struct f2fs_dir_entry *f2fs_find_target_dentry(struct fscrypt_name *fname,  			f2fs_hash_t namehash, int *max_slots,  			struct f2fs_dentry_ptr *d)  { @@ -171,7 +171,7 @@ static struct f2fs_dir_entry *find_in_level(struct inode *dir,  	for (; bidx < end_block; bidx++) {  		/* no need to allocate new dentry pages to all the indices */ -		dentry_page = find_data_page(dir, bidx); +		dentry_page = f2fs_find_data_page(dir, bidx);  		if (IS_ERR(dentry_page)) {  			if (PTR_ERR(dentry_page) == -ENOENT) {  				room = true; @@ -210,7 +210,7 @@ struct f2fs_dir_entry *__f2fs_find_entry(struct inode *dir,  	if (f2fs_has_inline_dentry(dir)) {  		*res_page = NULL; -		de = find_in_inline_dir(dir, fname, res_page); +		de = f2fs_find_in_inline_dir(dir, fname, res_page);  		goto out;  	} @@ -319,7 +319,7 @@ static void init_dent_inode(const struct qstr *name, struct page *ipage)  	set_page_dirty(ipage);  } -void do_make_empty_dir(struct inode *inode, struct inode *parent, +void f2fs_do_make_empty_dir(struct inode *inode, struct inode *parent,  					struct f2fs_dentry_ptr *d)  {  	struct qstr dot = QSTR_INIT(".", 1); @@ -340,23 +340,23 @@ static int make_empty_dir(struct inode *inode,  	struct f2fs_dentry_ptr d;  	if (f2fs_has_inline_dentry(inode)) -		return make_empty_inline_dir(inode, parent, page); +		return f2fs_make_empty_inline_dir(inode, parent, page); -	dentry_page = get_new_data_page(inode, page, 0, true); +	dentry_page = f2fs_get_new_data_page(inode, page, 0, true);  	if (IS_ERR(dentry_page))  		return PTR_ERR(dentry_page);  	dentry_blk = page_address(dentry_page);  	make_dentry_ptr_block(NULL, &d, dentry_blk); -	do_make_empty_dir(inode, parent, &d); +	f2fs_do_make_empty_dir(inode, parent, &d);  	set_page_dirty(dentry_page);  	f2fs_put_page(dentry_page, 1);  	return 0;  } -struct page *init_inode_metadata(struct inode *inode, struct inode *dir, +struct page *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,  			const struct qstr *new_name, const struct qstr *orig_name,  			struct page *dpage)  { @@ -365,7 +365,7 @@ struct page *init_inode_metadata(struct inode *inode, struct inode *dir,  	int err;  	if (is_inode_flag_set(inode, FI_NEW_INODE)) { -		page = new_inode_page(inode); +		page = f2fs_new_inode_page(inode);  		if (IS_ERR(page))  			return page; @@ -395,7 +395,7 @@ struct page *init_inode_metadata(struct inode *inode, struct inode *dir,  				goto put_error;  		}  	} else { -		page = get_node_page(F2FS_I_SB(dir), inode->i_ino); +		page = f2fs_get_node_page(F2FS_I_SB(dir), inode->i_ino);  		if (IS_ERR(page))  			return page;  	} @@ -418,19 +418,19 @@ struct page *init_inode_metadata(struct inode *inode, struct inode *dir,  		 * we should remove this inode from orphan list.  		 */  		if (inode->i_nlink == 0) -			remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino); +			f2fs_remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino);  		f2fs_i_links_write(inode, true);  	}  	return page;  put_error:  	clear_nlink(inode); -	update_inode(inode, page); +	f2fs_update_inode(inode, page);  	f2fs_put_page(page, 1);  	return ERR_PTR(err);  } -void update_parent_metadata(struct inode *dir, struct inode *inode, +void f2fs_update_parent_metadata(struct inode *dir, struct inode *inode,  						unsigned int current_depth)  {  	if (inode && is_inode_flag_set(inode, FI_NEW_INODE)) { @@ -448,7 +448,7 @@ void update_parent_metadata(struct inode *dir, struct inode *inode,  		clear_inode_flag(inode, FI_INC_LINK);  } -int room_for_filename(const void *bitmap, int slots, int max_slots) +int f2fs_room_for_filename(const void *bitmap, int slots, int max_slots)  {  	int bit_start = 0;  	int zero_start, zero_end; @@ -537,12 +537,12 @@ start:  				(le32_to_cpu(dentry_hash) % nbucket));  	for (block = bidx; block <= (bidx + nblock - 1); block++) { -		dentry_page = get_new_data_page(dir, NULL, block, true); +		dentry_page = f2fs_get_new_data_page(dir, NULL, block, true);  		if (IS_ERR(dentry_page))  			return PTR_ERR(dentry_page);  		dentry_blk = page_address(dentry_page); -		bit_pos = room_for_filename(&dentry_blk->dentry_bitmap, +		bit_pos = f2fs_room_for_filename(&dentry_blk->dentry_bitmap,  						slots, NR_DENTRY_IN_BLOCK);  		if (bit_pos < NR_DENTRY_IN_BLOCK)  			goto add_dentry; @@ -558,7 +558,7 @@ add_dentry:  	if (inode) {  		down_write(&F2FS_I(inode)->i_sem); -		page = init_inode_metadata(inode, dir, new_name, +		page = f2fs_init_inode_metadata(inode, dir, new_name,  						orig_name, NULL);  		if (IS_ERR(page)) {  			err = PTR_ERR(page); @@ -576,7 +576,7 @@ add_dentry:  		f2fs_put_page(page, 1);  	} -	update_parent_metadata(dir, inode, current_depth); +	f2fs_update_parent_metadata(dir, inode, current_depth);  fail:  	if (inode)  		up_write(&F2FS_I(inode)->i_sem); @@ -586,7 +586,7 @@ fail:  	return err;  } -int __f2fs_do_add_link(struct inode *dir, struct fscrypt_name *fname, +int f2fs_add_dentry(struct inode *dir, struct fscrypt_name *fname,  				struct inode *inode, nid_t ino, umode_t mode)  {  	struct qstr new_name; @@ -610,7 +610,7 @@ int __f2fs_do_add_link(struct inode *dir, struct fscrypt_name *fname,   * Caller should grab and release a rwsem by calling f2fs_lock_op() and   * f2fs_unlock_op().   */ -int __f2fs_add_link(struct inode *dir, const struct qstr *name, +int f2fs_do_add_link(struct inode *dir, const struct qstr *name,  				struct inode *inode, nid_t ino, umode_t mode)  {  	struct fscrypt_name fname; @@ -639,7 +639,7 @@ int __f2fs_add_link(struct inode *dir, const struct qstr *name,  	} else if (IS_ERR(page)) {  		err = PTR_ERR(page);  	} else { -		err = __f2fs_do_add_link(dir, &fname, inode, ino, mode); +		err = f2fs_add_dentry(dir, &fname, inode, ino, mode);  	}  	fscrypt_free_filename(&fname);  	return err; @@ -651,7 +651,7 @@ int f2fs_do_tmpfile(struct inode *inode, struct inode *dir)  	int err = 0;  	down_write(&F2FS_I(inode)->i_sem); -	page = init_inode_metadata(inode, dir, NULL, NULL, NULL); +	page = f2fs_init_inode_metadata(inode, dir, NULL, NULL, NULL);  	if (IS_ERR(page)) {  		err = PTR_ERR(page);  		goto fail; @@ -683,9 +683,9 @@ void f2fs_drop_nlink(struct inode *dir, struct inode *inode)  	up_write(&F2FS_I(inode)->i_sem);  	if (inode->i_nlink == 0) -		add_orphan_inode(inode); +		f2fs_add_orphan_inode(inode);  	else -		release_orphan_inode(sbi); +		f2fs_release_orphan_inode(sbi);  }  /* @@ -698,14 +698,12 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,  	struct	f2fs_dentry_block *dentry_blk;  	unsigned int bit_pos;  	int slots = GET_DENTRY_SLOTS(le16_to_cpu(dentry->name_len)); -	struct address_space *mapping = page_mapping(page); -	unsigned long flags;  	int i;  	f2fs_update_time(F2FS_I_SB(dir), REQ_TIME);  	if (F2FS_OPTION(F2FS_I_SB(dir)).fsync_mode == FSYNC_MODE_STRICT) -		add_ino_entry(F2FS_I_SB(dir), dir->i_ino, TRANS_DIR_INO); +		f2fs_add_ino_entry(F2FS_I_SB(dir), dir->i_ino, TRANS_DIR_INO);  	if (f2fs_has_inline_dentry(dir))  		return f2fs_delete_inline_entry(dentry, page, dir, inode); @@ -731,17 +729,13 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,  		f2fs_drop_nlink(dir, inode);  	if (bit_pos == NR_DENTRY_IN_BLOCK && -			!truncate_hole(dir, page->index, page->index + 1)) { -		xa_lock_irqsave(&mapping->i_pages, flags); -		radix_tree_tag_clear(&mapping->i_pages, page_index(page), -				     PAGECACHE_TAG_DIRTY); -		xa_unlock_irqrestore(&mapping->i_pages, flags); - +		!f2fs_truncate_hole(dir, page->index, page->index + 1)) { +		f2fs_clear_radix_tree_dirty_tag(page);  		clear_page_dirty_for_io(page);  		ClearPagePrivate(page);  		ClearPageUptodate(page);  		inode_dec_dirty_pages(dir); -		remove_dirty_inode(dir); +		f2fs_remove_dirty_inode(dir);  	}  	f2fs_put_page(page, 1);  } @@ -758,7 +752,7 @@ bool f2fs_empty_dir(struct inode *dir)  		return f2fs_empty_inline_dir(dir);  	for (bidx = 0; bidx < nblock; bidx++) { -		dentry_page = get_lock_data_page(dir, bidx, false); +		dentry_page = f2fs_get_lock_data_page(dir, bidx, false);  		if (IS_ERR(dentry_page)) {  			if (PTR_ERR(dentry_page) == -ENOENT)  				continue; @@ -806,7 +800,7 @@ int f2fs_fill_dentries(struct dir_context *ctx, struct f2fs_dentry_ptr *d,  			continue;  		} -		d_type = get_de_type(de); +		d_type = f2fs_get_de_type(de);  		de_name.name = d->filename[bit_pos];  		de_name.len = le16_to_cpu(de->name_len); @@ -830,7 +824,7 @@ int f2fs_fill_dentries(struct dir_context *ctx, struct f2fs_dentry_ptr *d,  			return 1;  		if (sbi->readdir_ra == 1) -			ra_node_page(sbi, le32_to_cpu(de->ino)); +			f2fs_ra_node_page(sbi, le32_to_cpu(de->ino));  		bit_pos += GET_DENTRY_SLOTS(le16_to_cpu(de->name_len));  		ctx->pos = start_pos + bit_pos; @@ -880,7 +874,7 @@ static int f2fs_readdir(struct file *file, struct dir_context *ctx)  			page_cache_sync_readahead(inode->i_mapping, ra, file, n,  				min(npages - n, (pgoff_t)MAX_DIR_RA_PAGES)); -		dentry_page = get_lock_data_page(inode, n, false); +		dentry_page = f2fs_get_lock_data_page(inode, n, false);  		if (IS_ERR(dentry_page)) {  			err = PTR_ERR(dentry_page);  			if (err == -ENOENT) { |