reiserfs-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv2 1/3] Adjust reiser4 for 3.19: ->f_dentry is gone, use file_inode() instead of ->f_dentry->d_inode.
@ 2015-02-26 23:16 Ivan Shapovalov
  2015-02-26 23:16 ` [PATCHv2 2/3] Adjust reiser4 for 3.19: ->f_dentry is gone, convert remaining uses to an equivalent Ivan Shapovalov
  2015-02-26 23:16 ` [PATCHv2 3/3] Adjust reiser4 for 3.19: rip out all quota-related code Ivan Shapovalov
  0 siblings, 2 replies; 3+ messages in thread
From: Ivan Shapovalov @ 2015-02-26 23:16 UTC (permalink / raw)
  To: reiserfs-devel; +Cc: Ivan Shapovalov

Upstream commit fb32c76d16aa40f3057f53273ac483a8e2468004
"VFS: Convert file->f_dentry->d_inode to file_inode()".

Signed-off-by: Ivan Shapovalov <intelfx100@gmail.com>
---
 fs/read_write.c                          |  4 ++--
 fs/reiser4/fsdata.c                      | 10 +++++-----
 fs/reiser4/plugin/dir_plugin_common.c    |  2 +-
 fs/reiser4/plugin/file/cryptcompress.c   |  8 ++++----
 fs/reiser4/plugin/file/file.c            | 26 +++++++++++++-------------
 fs/reiser4/plugin/file/file_conversion.c | 12 ++++++------
 fs/reiser4/plugin/file/tail_conversion.c |  2 +-
 fs/reiser4/plugin/file_ops_readdir.c     | 10 +++++-----
 fs/reiser4/plugin/item/ctail.c           |  4 ++--
 fs/reiser4/plugin/item/extent_file_ops.c |  2 +-
 10 files changed, 40 insertions(+), 40 deletions(-)

diff --git a/fs/read_write.c b/fs/read_write.c
index ea7a433..4adcc96 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -254,9 +254,9 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin)
 {
 	loff_t retval;
 
-	mutex_lock(&file->f_dentry->d_inode->i_mutex);
+	mutex_lock(&file_inode(file)->i_mutex);
 	retval = default_llseek_unlocked(file, offset, origin);
-	mutex_unlock(&file->f_dentry->d_inode->i_mutex);
+	mutex_unlock(&file_inode(file)->i_mutex);
 	return retval;
 }
 EXPORT_SYMBOL(default_llseek);
diff --git a/fs/reiser4/fsdata.c b/fs/reiser4/fsdata.c
index 0bb3518..7b77b7d 100644
--- a/fs/reiser4/fsdata.c
+++ b/fs/reiser4/fsdata.c
@@ -585,7 +585,7 @@ void reiser4_detach_fsdata(struct file *file)
 	if (!file_is_stateless(file))
 		return;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 	spin_lock_inode(inode);
 	clean_fsdata(file);
 	spin_unlock_inode(inode);
@@ -741,7 +741,7 @@ reiser4_file_fsdata *reiser4_get_file_fsdata(struct file *file)
 		if (fsdata == NULL)
 			return ERR_PTR(RETERR(-ENOMEM));
 
-		inode = file->f_dentry->d_inode;
+		inode = file_inode(file);
 		spin_lock_inode(inode);
 		if (file->private_data == NULL) {
 			file->private_data = fsdata;
@@ -767,7 +767,7 @@ static void free_file_fsdata_nolock(struct file *file)
 {
 	reiser4_file_fsdata *fsdata;
 
-	assert("", spin_inode_is_locked(file->f_dentry->d_inode));
+	assert("", spin_inode_is_locked(file_inode(file)));
 	fsdata = file->private_data;
 	if (fsdata != NULL) {
 		list_del_init(&fsdata->dir.linkage);
@@ -785,9 +785,9 @@ static void free_file_fsdata_nolock(struct file *file)
  */
 void reiser4_free_file_fsdata(struct file *file)
 {
-	spin_lock_inode(file->f_dentry->d_inode);
+	spin_lock_inode(file_inode(file));
 	free_file_fsdata_nolock(file);
-	spin_unlock_inode(file->f_dentry->d_inode);
+	spin_unlock_inode(file_inode(file));
 }
 
 /*
diff --git a/fs/reiser4/plugin/dir_plugin_common.c b/fs/reiser4/plugin/dir_plugin_common.c
index 4eb6165..c65ee72 100644
--- a/fs/reiser4/plugin/dir_plugin_common.c
+++ b/fs/reiser4/plugin/dir_plugin_common.c
@@ -97,7 +97,7 @@ int build_readdir_key_common(struct file *dir /* directory being read */ ,
 	assert("nikita-1361", dir != NULL);
 	assert("nikita-1362", result != NULL);
 	assert("nikita-1363", dir->f_dentry != NULL);
-	inode = dir->f_dentry->d_inode;
+	inode = file_inode(dir);
 	assert("nikita-1373", inode != NULL);
 
 	fdata = reiser4_get_file_fsdata(dir);
diff --git a/fs/reiser4/plugin/file/cryptcompress.c b/fs/reiser4/plugin/file/cryptcompress.c
index 06b9856..63bfff1 100644
--- a/fs/reiser4/plugin/file/cryptcompress.c
+++ b/fs/reiser4/plugin/file/cryptcompress.c
@@ -1263,7 +1263,7 @@ int readpage_cryptcompress(struct file *file, struct page *page)
 	}
 	assert("edward-113",
 	       ergo(file != NULL,
-		    page->mapping == file->f_dentry->d_inode->i_mapping));
+		    page->mapping == file_inode(file)->i_mapping));
 
 	if (PageUptodate(page)) {
 		warning("edward-1338", "page is already uptodate\n");
@@ -2869,7 +2869,7 @@ ssize_t write_cryptcompress(struct file *file, const char __user *buf,
 
   	assert("edward-1449", cont->state == DISPATCH_INVAL_STATE);
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 	assert("edward-196", cryptcompress_inode_ok(inode));
 
 	info = cryptcompress_inode_data(inode);
@@ -2949,7 +2949,7 @@ ssize_t read_cryptcompress(struct file * file, char __user *buf, size_t size,
 	struct cryptcompress_info *info;
 	reiser4_block_nr needed;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 	assert("edward-1194", !reiser4_inode_get_flag(inode, REISER4_NO_SD));
 
 	ctx = reiser4_init_context(inode->i_sb);
@@ -3692,7 +3692,7 @@ int mmap_cryptcompress(struct file *file, struct vm_area_struct *vma)
 	struct inode *inode;
 	reiser4_context *ctx;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 	ctx = reiser4_init_context(inode->i_sb);
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
diff --git a/fs/reiser4/plugin/file/file.c b/fs/reiser4/plugin/file/file.c
index 82ecb59..23a62b7 100644
--- a/fs/reiser4/plugin/file/file.c
+++ b/fs/reiser4/plugin/file/file.c
@@ -663,12 +663,12 @@ int load_file_hint(struct file *file, hint_t *hint)
 		if (IS_ERR(fsdata))
 			return PTR_ERR(fsdata);
 
-		spin_lock_inode(file->f_dentry->d_inode);
+		spin_lock_inode(file_inode(file));
 		if (reiser4_seal_is_set(&fsdata->reg.hint.seal)) {
 			memcpy(hint, &fsdata->reg.hint, sizeof(*hint));
 			init_lh(&hint->lh);
 			hint->ext_coord.lh = &hint->lh;
-			spin_unlock_inode(file->f_dentry->d_inode);
+			spin_unlock_inode(file_inode(file));
 			/*
 			 * force re-validation of the coord on the first
 			 * iteration of the read/write loop.
@@ -680,7 +680,7 @@ int load_file_hint(struct file *file, hint_t *hint)
 			return 0;
 		}
 		memset(&fsdata->reg.hint, 0, sizeof(hint_t));
-		spin_unlock_inode(file->f_dentry->d_inode);
+		spin_unlock_inode(file_inode(file));
 	}
 	hint_init_zero(hint);
 	return 0;
@@ -707,9 +707,9 @@ void save_file_hint(struct file *file, const hint_t *hint)
 	assert("nikita-19891",
 	       coords_equal(&hint->seal.coord1, &hint->ext_coord.coord));
 	assert("vs-30", hint->lh.owner == NULL);
-	spin_lock_inode(file->f_dentry->d_inode);
+	spin_lock_inode(file_inode(file));
 	fsdata->reg.hint = *hint;
-	spin_unlock_inode(file->f_dentry->d_inode);
+	spin_unlock_inode(file_inode(file));
 	return;
 }
 
@@ -1656,7 +1656,7 @@ static ssize_t do_read_compound_file(hint_t *hint, struct file *file,
 	coord_t *coord;
 	znode *loaded;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 
 	/* build flow */
 	assert("vs-1250",
@@ -1726,7 +1726,7 @@ ssize_t read_unix_file(struct file *file, char __user *buf,
 	if (unlikely(read_amount == 0))
 		return 0;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 	assert("vs-972", !reiser4_inode_get_flag(inode, REISER4_NO_SD));
 
 	ctx = reiser4_init_context(inode->i_sb);
@@ -1795,7 +1795,7 @@ static ssize_t read_compound_file(struct file *file, char __user *buf,
 	size_t was_read = 0;
 	loff_t i_size;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 	assert("vs-972", !reiser4_inode_get_flag(inode, REISER4_NO_SD));
 
 	i_size = i_size_read(inode);
@@ -1887,7 +1887,7 @@ int mmap_unix_file(struct file *file, struct vm_area_struct *vma)
 	struct unix_file_info *uf_info;
 	reiser4_block_nr needed;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 	ctx = reiser4_init_context(inode->i_sb);
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
@@ -2096,7 +2096,7 @@ ssize_t write_unix_file(struct file *file,
 	loff_t new_size;
 
 	ctx = get_current_context();
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 
 	assert("vs-947", !reiser4_inode_get_flag(inode, REISER4_NO_SD));
 	assert("vs-9471", (!reiser4_inode_get_flag(inode, REISER4_PART_MIXED)));
@@ -2730,7 +2730,7 @@ int write_begin_unix_file(struct file *file, struct page *page,
 	struct inode * inode;
 	struct unix_file_info *info;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 	info = unix_file_inode_data(inode);
 
 	ret = reiser4_grab_space_force(estimate_one_insert_into_item
@@ -2739,7 +2739,7 @@ int write_begin_unix_file(struct file *file, struct page *page,
 	if (ret)
 		return ret;
 	get_exclusive_access(info);
-	ret = find_file_state(file->f_dentry->d_inode, info);
+	ret = find_file_state(file_inode(file), info);
 	if (unlikely(ret != 0)) {
 		drop_exclusive_access(info);
 		return ret;
@@ -2768,7 +2768,7 @@ int write_end_unix_file(struct file *file, struct page *page,
 	struct inode *inode;
 	struct unix_file_info *info;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 	info = unix_file_inode_data(inode);
 
 	unlock_page(page);
diff --git a/fs/reiser4/plugin/file/file_conversion.c b/fs/reiser4/plugin/file/file_conversion.c
index 3ce4898..d4661cd 100644
--- a/fs/reiser4/plugin/file/file_conversion.c
+++ b/fs/reiser4/plugin/file/file_conversion.c
@@ -524,7 +524,7 @@ ssize_t reiser4_write_dispatch(struct file *file, const char __user *buf,
 	ssize_t written_old = 0; /* bytes written with initial plugin */
 	ssize_t written_new = 0; /* bytes written with new plugin */
 	struct dispatch_context cont;
-	struct inode * inode = file->f_dentry->d_inode;
+	struct inode * inode = file_inode(file);
 
 	ctx = reiser4_init_context(inode->i_sb);
 	if (IS_ERR(ctx))
@@ -603,20 +603,20 @@ int reiser4_open_dispatch(struct inode *inode, struct file *file)
 ssize_t reiser4_read_dispatch(struct file * file, char __user * buf,
 			      size_t size, loff_t * off)
 {
-	struct inode * inode = file->f_dentry->d_inode;
+	struct inode * inode = file_inode(file);
 	return PROT_PASSIVE(ssize_t, read, (file, buf, size, off));
 }
 
 long reiser4_ioctl_dispatch(struct file *filp, unsigned int cmd,
 			    unsigned long arg)
 {
-	struct inode * inode = filp->f_dentry->d_inode;
+	struct inode * inode = file_inode(filp);
 	return PROT_PASSIVE(int, ioctl, (filp, cmd, arg));
 }
 
 int reiser4_mmap_dispatch(struct file *file, struct vm_area_struct *vma)
 {
-	struct inode *inode = file->f_dentry->d_inode;
+	struct inode *inode = file_inode(file);
 	return PROT_PASSIVE(int, mmap, (file, vma));
 }
 
@@ -649,7 +649,7 @@ int reiser4_write_begin_dispatch(struct file *file,
 	struct page *page;
 	pgoff_t index;
 	reiser4_context *ctx;
-	struct inode * inode = file->f_dentry->d_inode;
+	struct inode * inode = file_inode(file);
 
 	index = pos >> PAGE_CACHE_SHIFT;
 	page = grab_cache_page_write_begin(mapping, index,
@@ -658,7 +658,7 @@ int reiser4_write_begin_dispatch(struct file *file,
 	if (!page)
 		return -ENOMEM;
 
-	ctx = reiser4_init_context(file->f_dentry->d_inode->i_sb);
+	ctx = reiser4_init_context(file_inode(file)->i_sb);
 	if (IS_ERR(ctx)) {
 		ret = PTR_ERR(ctx);
 		goto err2;
diff --git a/fs/reiser4/plugin/file/tail_conversion.c b/fs/reiser4/plugin/file/tail_conversion.c
index 1763cb1..ed9e4f8 100644
--- a/fs/reiser4/plugin/file/tail_conversion.c
+++ b/fs/reiser4/plugin/file/tail_conversion.c
@@ -670,7 +670,7 @@ int extent2tail(struct file * file, struct unix_file_info *uf_info)
 			assert("edward-1537",
 			       file != NULL && file->f_dentry != NULL);
 			assert("edward-1538",
-			       file->f_dentry->d_inode == inode);
+			       file_inode(file) == inode);
 
 			result = reiser4_write_tail_noreserve(file, inode,
 						 (char __user *)kmap(page),
diff --git a/fs/reiser4/plugin/file_ops_readdir.c b/fs/reiser4/plugin/file_ops_readdir.c
index e359dec..00b9f45 100644
--- a/fs/reiser4/plugin/file_ops_readdir.c
+++ b/fs/reiser4/plugin/file_ops_readdir.c
@@ -136,7 +136,7 @@ static int dir_go_to(struct file *dir, struct readdir_pos *pos, tap_t *tap)
 
 	assert("nikita-2554", pos != NULL);
 
-	inode = dir->f_dentry->d_inode;
+	inode = file_inode(dir);
 	result = inode_dir_plugin(inode)->build_readdir_key(dir, &key);
 	if (result != 0)
 		return result;
@@ -232,7 +232,7 @@ static int dir_rewind(struct file *dir, loff_t *fpos, struct readdir_pos *pos, t
 	 * to */
 	destination = pos->entry_no + shift;
 
-	inode = dir->f_dentry->d_inode;
+	inode = file_inode(dir);
 	if (dirpos < 0)
 		return RETERR(-EINVAL);
 	else if (destination == 0ll || dirpos == 0) {
@@ -442,7 +442,7 @@ static int dir_readdir_init(struct file *f, loff_t* fpos, tap_t *tap,
 	int result;
 
 	assert("nikita-1359", f != NULL);
-	inode = f->f_dentry->d_inode;
+	inode = file_inode(f);
 	assert("nikita-1360", inode != NULL);
 
 	if (!S_ISDIR(inode->i_mode))
@@ -481,7 +481,7 @@ loff_t reiser4_llseek_dir_common(struct file *file, loff_t off, int origin)
 	loff_t result;
 	struct inode *inode;
 
-	inode = file->f_dentry->d_inode;
+	inode = file_inode(file);
 
 	ctx = reiser4_init_context(inode->i_sb);
 	if (IS_ERR(ctx))
@@ -570,7 +570,7 @@ int reiser4_iterate_common(struct file *f /* directory file being read */,
 	struct readdir_pos *pos;
 
 	assert("nikita-1359", f != NULL);
-	inode = f->f_dentry->d_inode;
+	inode = file_inode(f);
 	assert("nikita-1360", inode != NULL);
 
 	if (!S_ISDIR(inode->i_mode))
diff --git a/fs/reiser4/plugin/item/ctail.c b/fs/reiser4/plugin/item/ctail.c
index ea197ce..6475eb7 100644
--- a/fs/reiser4/plugin/item/ctail.c
+++ b/fs/reiser4/plugin/item/ctail.c
@@ -814,7 +814,7 @@ static int ctail_readpages_filler(void * data, struct page * page)
 {
 	int ret = 0;
 	struct cluster_handle * clust = data;
-	struct inode * inode = clust->file->f_dentry->d_inode;
+	struct inode * inode = file_inode(clust->file);
 
 	assert("edward-1525", page->mapping == inode->i_mapping);
 
@@ -852,7 +852,7 @@ int readpages_ctail(struct file *file, struct address_space *mapping,
 	struct cluster_handle clust;
 	struct inode *inode = mapping->host;
 
-	assert("edward-1521", inode == file->f_dentry->d_inode);
+	assert("edward-1521", inode == file_inode(file));
 
 	cluster_init_read(&clust, NULL);
 	clust.file = file;
diff --git a/fs/reiser4/plugin/item/extent_file_ops.c b/fs/reiser4/plugin/item/extent_file_ops.c
index cb57379..89828d5 100644
--- a/fs/reiser4/plugin/item/extent_file_ops.c
+++ b/fs/reiser4/plugin/item/extent_file_ops.c
@@ -1224,7 +1224,7 @@ int reiser4_read_extent(struct file *file, flow_t *flow, hint_t *hint)
 	assert("vs-1120", znode_is_loaded(coord->node));
 	assert("vs-1256", coord_matches_key_extent(coord, &flow->key));
 
-	mapping = file->f_dentry->d_inode->i_mapping;
+	mapping = file_inode(file)->i_mapping;
 	ext_coord = &uf_coord->extension.extent;
 
 	file_off = get_key_offset(&flow->key);
-- 
2.3.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCHv2 2/3] Adjust reiser4 for 3.19: ->f_dentry is gone, convert remaining uses to an equivalent.
  2015-02-26 23:16 [PATCHv2 1/3] Adjust reiser4 for 3.19: ->f_dentry is gone, use file_inode() instead of ->f_dentry->d_inode Ivan Shapovalov
@ 2015-02-26 23:16 ` Ivan Shapovalov
  2015-02-26 23:16 ` [PATCHv2 3/3] Adjust reiser4 for 3.19: rip out all quota-related code Ivan Shapovalov
  1 sibling, 0 replies; 3+ messages in thread
From: Ivan Shapovalov @ 2015-02-26 23:16 UTC (permalink / raw)
  To: reiserfs-devel; +Cc: Ivan Shapovalov

Upstream commit 78d28e651f97866d608d9b41f8ad291e65d47dd5
"kill f_dentry macro".

"f_dentry is gone; use f_path.dentry, or, better yet, see if you can
avoid it entirely."

Avoiding has been done in the previous commit. This commit blindly
replaces the remaining uses with an equivalent f_path.dentry.
Probably, these will need to be revisited someday...

Signed-off-by: Ivan Shapovalov <intelfx100@gmail.com>
---
 fs/reiser4/fsdata.c                      | 2 +-
 fs/reiser4/plugin/dir_plugin_common.c    | 2 +-
 fs/reiser4/plugin/file/file.c            | 2 +-
 fs/reiser4/plugin/file/tail_conversion.c | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/reiser4/fsdata.c b/fs/reiser4/fsdata.c
index 7b77b7d..ad3f410 100644
--- a/fs/reiser4/fsdata.c
+++ b/fs/reiser4/fsdata.c
@@ -489,7 +489,7 @@ void reiser4_kill_cursors(struct inode *inode)
  */
 static int file_is_stateless(struct file *file)
 {
-	return reiser4_get_dentry_fsdata(file->f_dentry)->stateless;
+	return reiser4_get_dentry_fsdata(file->f_path.dentry)->stateless;
 }
 
 /**
diff --git a/fs/reiser4/plugin/dir_plugin_common.c b/fs/reiser4/plugin/dir_plugin_common.c
index c65ee72..5e72fa6 100644
--- a/fs/reiser4/plugin/dir_plugin_common.c
+++ b/fs/reiser4/plugin/dir_plugin_common.c
@@ -96,7 +96,7 @@ int build_readdir_key_common(struct file *dir /* directory being read */ ,
 
 	assert("nikita-1361", dir != NULL);
 	assert("nikita-1362", result != NULL);
-	assert("nikita-1363", dir->f_dentry != NULL);
+	assert("nikita-1363", dir->f_path.dentry != NULL);
 	inode = file_inode(dir);
 	assert("nikita-1373", inode != NULL);
 
diff --git a/fs/reiser4/plugin/file/file.c b/fs/reiser4/plugin/file/file.c
index 23a62b7..49c4c68 100644
--- a/fs/reiser4/plugin/file/file.c
+++ b/fs/reiser4/plugin/file/file.c
@@ -2317,7 +2317,7 @@ int release_unix_file(struct inode *inode, struct file *file)
 		uf_info = unix_file_inode_data(inode);
 
 		get_exclusive_access_careful(uf_info, inode);
-		if (file->f_dentry->d_lockref.count == 1 &&
+		if (file->f_path.dentry->d_lockref.count == 1 &&
 		    uf_info->container == UF_CONTAINER_EXTENTS &&
 		    !should_have_notail(uf_info, inode->i_size) &&
 		    !rofs_inode(inode)) {
diff --git a/fs/reiser4/plugin/file/tail_conversion.c b/fs/reiser4/plugin/file/tail_conversion.c
index ed9e4f8..196bff6 100644
--- a/fs/reiser4/plugin/file/tail_conversion.c
+++ b/fs/reiser4/plugin/file/tail_conversion.c
@@ -668,7 +668,7 @@ int extent2tail(struct file * file, struct unix_file_info *uf_info)
 			loff_t pos = start_byte;
 
 			assert("edward-1537",
-			       file != NULL && file->f_dentry != NULL);
+			       file != NULL && file->f_path.dentry != NULL);
 			assert("edward-1538",
 			       file_inode(file) == inode);
 
-- 
2.3.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCHv2 3/3] Adjust reiser4 for 3.19: rip out all quota-related code.
  2015-02-26 23:16 [PATCHv2 1/3] Adjust reiser4 for 3.19: ->f_dentry is gone, use file_inode() instead of ->f_dentry->d_inode Ivan Shapovalov
  2015-02-26 23:16 ` [PATCHv2 2/3] Adjust reiser4 for 3.19: ->f_dentry is gone, convert remaining uses to an equivalent Ivan Shapovalov
@ 2015-02-26 23:16 ` Ivan Shapovalov
  1 sibling, 0 replies; 3+ messages in thread
From: Ivan Shapovalov @ 2015-02-26 23:16 UTC (permalink / raw)
  To: reiserfs-devel; +Cc: Ivan Shapovalov

Upstream commit 75cbe701a4251fcd8b846d52ae42f88c9a8e5e93
"vfs: Remove i_dquot field from inode".

While we do not actually support quotas, we take the opportunity to
(revertibly) remove all rudimentary quota-related code, as this allows to
save us some (tiny) amount of space per each inode.

Signed-off-by: Ivan Shapovalov <intelfx100@gmail.com>
---

The two commits which re-add/forward port the removed code can be pulled from:

    git://github.com/intelfx/linux reiser4-3.19-quotas-rudimentary

Viewable at:

    https://github.com/intelfx/linux/tree/reiser4-3.19-quotas-rudimentary

 fs/reiser4/as_ops.c                      |  1 -
 fs/reiser4/inode.h                       | 11 +++++++++++
 fs/reiser4/plugin/file_plugin_common.c   |  5 -----
 fs/reiser4/plugin/inode_ops.c            | 30 ------------------------------
 fs/reiser4/plugin/item/cde.c             |  8 ++------
 fs/reiser4/plugin/item/extent_file_ops.c | 13 +++----------
 fs/reiser4/plugin/item/extent_item_ops.c |  4 +---
 fs/reiser4/plugin/item/sde.c             |  8 ++------
 fs/reiser4/plugin/item/tail.c            | 29 ++++++++++-------------------
 fs/reiser4/vfs_ops.c                     |  1 -
 10 files changed, 29 insertions(+), 81 deletions(-)

diff --git a/fs/reiser4/as_ops.c b/fs/reiser4/as_ops.c
index 7345774..a4cd5020 100644
--- a/fs/reiser4/as_ops.c
+++ b/fs/reiser4/as_ops.c
@@ -41,7 +41,6 @@
 #include <linux/module.h>
 #include <linux/writeback.h>
 #include <linux/backing-dev.h>
-#include <linux/quotaops.h>
 #include <linux/security.h>
 #include <linux/migrate.h>
 
diff --git a/fs/reiser4/inode.h b/fs/reiser4/inode.h
index 95e1d9e..c6a6273 100644
--- a/fs/reiser4/inode.h
+++ b/fs/reiser4/inode.h
@@ -455,6 +455,17 @@ extern void inode_check_scale_nolock(struct inode *inode, __u64 old, __u64 new);
 })
 
 
+static inline void inode_add_blocks(struct inode *inode, __u64 blocks)
+{
+	inode_add_bytes(inode, blocks << inode->i_blkbits);
+}
+
+static inline void inode_sub_blocks(struct inode *inode, __u64 blocks)
+{
+	inode_sub_bytes(inode, blocks << inode->i_blkbits);
+}
+
+
 /* See comment before reiser4_readdir_common() for description. */
 static inline struct list_head *get_readdir_list(const struct inode *inode)
 {
diff --git a/fs/reiser4/plugin/file_plugin_common.c b/fs/reiser4/plugin/file_plugin_common.c
index f2eaf64..7030df4 100644
--- a/fs/reiser4/plugin/file_plugin_common.c
+++ b/fs/reiser4/plugin/file_plugin_common.c
@@ -9,8 +9,6 @@
 #include "object.h"
 #include "../safe_link.h"
 
-#include <linux/quotaops.h>
-
 static int insert_new_sd(struct inode *inode);
 static int update_sd(struct inode *inode);
 
@@ -945,9 +943,6 @@ common_object_delete_no_reserve(struct inode *inode/* object to remove */)
 	if (!reiser4_inode_get_flag(inode, REISER4_NO_SD)) {
 		reiser4_key sd_key;
 
-		dquot_free_inode(inode);
-		dquot_drop(inode);
-
 		build_sd_key(inode, &sd_key);
 		result =
 		    reiser4_cut_tree(reiser4_tree_by_inode(inode),
diff --git a/fs/reiser4/plugin/inode_ops.c b/fs/reiser4/plugin/inode_ops.c
index 9e9497b..e465c5e 100644
--- a/fs/reiser4/plugin/inode_ops.c
+++ b/fs/reiser4/plugin/inode_ops.c
@@ -10,7 +10,6 @@
 #include "../inode.h"
 #include "../safe_link.h"
 
-#include <linux/quotaops.h>
 #include <linux/namei.h>
 
 static int create_vfs_object(struct inode *parent, struct dentry *dentry,
@@ -462,15 +461,6 @@ int reiser4_setattr_common(struct dentry *dentry, struct iattr *attr)
 	 */
 	result = setattr_reserve(reiser4_tree_by_inode(inode));
 	if (!result) {
-		if (((attr->ia_valid & ATTR_UID) && !uid_eq(attr->ia_uid, inode->i_uid))
-		    || ((attr->ia_valid & ATTR_GID) && !gid_eq(attr->ia_gid, inode->i_gid))) {
-			result = dquot_transfer(inode, attr) ? -EDQUOT : 0;
-			if (result) {
-				context_set_commit_async(ctx);
-				reiser4_exit_context(ctx);
-				return result;
-			}
-		}
 		setattr_copy(inode, attr);
 		mark_inode_dirty(inode);
 		result = reiser4_update_sd(inode);
@@ -601,12 +591,6 @@ static int do_create_vfs_child(reiser4_object_create_data * data,/* parameters
 	/* So that on error iput will be called. */
 	*retobj = object;
 
-	if (dquot_alloc_inode(object)) {
-		dquot_drop(object);
-		object->i_flags |= S_NOQUOTA;
-		return RETERR(-EDQUOT);
-	}
-
 	memset(&entry, 0, sizeof entry);
 	entry.obj = object;
 
@@ -616,8 +600,6 @@ static int do_create_vfs_child(reiser4_object_create_data * data,/* parameters
 	if (result) {
 		warning("nikita-431", "Cannot install plugin %i on %llx",
 			data->id, (unsigned long long)get_inode_oid(object));
-		dquot_free_inode(object);
-		object->i_flags |= S_NOQUOTA;
 		return result;
 	}
 
@@ -625,8 +607,6 @@ static int do_create_vfs_child(reiser4_object_create_data * data,/* parameters
 	obj_plug = inode_file_plugin(object);
 
 	if (obj_plug->create_object == NULL) {
-		dquot_free_inode(object);
-		object->i_flags |= S_NOQUOTA;
 		return RETERR(-EPERM);
 	}
 
@@ -644,8 +624,6 @@ static int do_create_vfs_child(reiser4_object_create_data * data,/* parameters
 		warning("nikita-432", "Cannot inherit from %llx to %llx",
 			(unsigned long long)get_inode_oid(parent),
 			(unsigned long long)get_inode_oid(object));
-		dquot_free_inode(object);
-		object->i_flags |= S_NOQUOTA;
 		return result;
 	}
 
@@ -660,8 +638,6 @@ static int do_create_vfs_child(reiser4_object_create_data * data,/* parameters
 	/* obtain directory plugin (if any) for new object. */
 	obj_dir = inode_dir_plugin(object);
 	if (obj_dir != NULL && obj_dir->init == NULL) {
-		dquot_free_inode(object);
-		object->i_flags |= S_NOQUOTA;
 		return RETERR(-EPERM);
 	}
 
@@ -669,8 +645,6 @@ static int do_create_vfs_child(reiser4_object_create_data * data,/* parameters
 
 	reserve = estimate_create_vfs_object(parent, object);
 	if (reiser4_grab_space(reserve, BA_CAN_COMMIT)) {
-		dquot_free_inode(object);
-		object->i_flags |= S_NOQUOTA;
 		return RETERR(-ENOSPC);
 	}
 
@@ -700,8 +674,6 @@ static int do_create_vfs_child(reiser4_object_create_data * data,/* parameters
 			warning("nikita-2219",
 				"Failed to create sd for %llu",
 				(unsigned long long)get_inode_oid(object));
-		dquot_free_inode(object);
-		object->i_flags |= S_NOQUOTA;
 		return result;
 	}
 
@@ -737,8 +709,6 @@ static int do_create_vfs_child(reiser4_object_create_data * data,/* parameters
 	 */
 	reiser4_update_sd(object);
 	if (result != 0) {
-		dquot_free_inode(object);
-		object->i_flags |= S_NOQUOTA;
 		/* if everything was ok (result == 0), parent stat-data is
 		 * already updated above (update_parent_dir()) */
 		reiser4_update_sd(parent);
diff --git a/fs/reiser4/plugin/item/cde.c b/fs/reiser4/plugin/item/cde.c
index 6e9ca28..e9afd14 100644
--- a/fs/reiser4/plugin/item/cde.c
+++ b/fs/reiser4/plugin/item/cde.c
@@ -70,7 +70,6 @@
 
 #include <linux/fs.h>		/* for struct inode */
 #include <linux/dcache.h>	/* for struct dentry */
-#include <linux/quotaops.h>
 
 #if 0
 #define CHECKME(coord)						\
@@ -931,9 +930,7 @@ int add_entry_cde(struct inode *dir /* directory object */ ,
 	result = is_dot_key(&dir_entry->key);
 	data.length = estimate_cde(result ? coord : NULL, &data);
 
-	/* NOTE-NIKITA quota plugin? */
-	if (dquot_alloc_space_nodirty(dir, cde_bytes(result, &data)))
-		return RETERR(-EDQUOT);
+	inode_add_bytes(dir, cde_bytes(result, &data));
 
 	if (result)
 		result = insert_by_coord(coord, &data, &dir_entry->key, lh, 0);
@@ -982,8 +979,7 @@ int rem_entry_cde(struct inode *dir /* directory of item */ ,
 	result =
 	    kill_node_content(coord, &shadow, NULL, NULL, NULL, NULL, NULL, 0);
 	if (result == 0) {
-		/* NOTE-NIKITA quota plugin? */
-		dquot_free_space_nodirty(dir, length);
+		inode_sub_bytes(dir, length);
 	}
 	return result;
 }
diff --git a/fs/reiser4/plugin/item/extent_file_ops.c b/fs/reiser4/plugin/item/extent_file_ops.c
index 89828d5..7330ae1 100644
--- a/fs/reiser4/plugin/item/extent_file_ops.c
+++ b/fs/reiser4/plugin/item/extent_file_ops.c
@@ -5,7 +5,6 @@
 #include "../../page_cache.h"
 #include "../object.h"
 
-#include <linux/quotaops.h>
 #include <linux/swap.h>
 
 static inline reiser4_extent *ext_by_offset(const znode *node, int offset)
@@ -260,9 +259,7 @@ static int append_last_extent(uf_coord_t *uf_coord, const reiser4_key *key,
 
 	assert("", get_key_offset(key) == (loff_t)index_jnode(jnodes[0]) * PAGE_CACHE_SIZE);
 
-	result = dquot_alloc_block_nodirty(mapping_jnode(jnodes[0])->host,
-					   count);
-	BUG_ON(result != 0);
+	inode_add_blocks(mapping_jnode(jnodes[0])->host, count);
 
 	switch (state_of_extent(ext)) {
 	case UNALLOCATED_EXTENT:
@@ -408,9 +405,7 @@ static int insert_first_extent(uf_coord_t *uf_coord, const reiser4_key *key,
 	if (count == 0)
 		return 0;
 
-	result = dquot_alloc_block_nodirty(mapping_jnode(jnodes[0])->host,
-					   count);
-	BUG_ON(result != 0);
+	inode_add_blocks(mapping_jnode(jnodes[0])->host, count);
 
 	/*
 	 * prepare for tree modification: compose body of item and item data
@@ -623,9 +618,7 @@ static int overwrite_one_block(uf_coord_t *uf_coord, const reiser4_key *key,
 		break;
 
 	case HOLE_EXTENT:
-		result = dquot_alloc_block_nodirty(mapping_jnode(node)->host,
-						   1);
-		BUG_ON(result != 0);
+		inode_add_blocks(mapping_jnode(node)->host, 1);
 		result = plug_hole(uf_coord, key, &how);
 		if (result)
 			return result;
diff --git a/fs/reiser4/plugin/item/extent_item_ops.c b/fs/reiser4/plugin/item/extent_item_ops.c
index b7e1ec7..3047b12 100644
--- a/fs/reiser4/plugin/item/extent_item_ops.c
+++ b/fs/reiser4/plugin/item/extent_item_ops.c
@@ -6,8 +6,6 @@
 #include "../../page_cache.h"
 #include "../../carry.h"
 
-#include <linux/quotaops.h>
-
 /* item_plugin->b.max_key_inside */
 reiser4_key *max_key_inside_extent(const coord_t * coord, reiser4_key * key)
 {
@@ -468,7 +466,7 @@ kill_hook_extent(const coord_t * coord, pos_in_node_t from, pos_in_node_t count,
 			length = to_off - offset;
 		}
 
-		dquot_free_block_nodirty(inode, length);
+		inode_sub_blocks(inode, length);
 
 		if (state_of_extent(ext) == UNALLOCATED_EXTENT) {
 			/* some jnodes corresponding to this unallocated extent */
diff --git a/fs/reiser4/plugin/item/sde.c b/fs/reiser4/plugin/item/sde.c
index 5870f18..c15abe3 100644
--- a/fs/reiser4/plugin/item/sde.c
+++ b/fs/reiser4/plugin/item/sde.c
@@ -16,7 +16,6 @@
 
 #include <linux/fs.h>		/* for struct inode */
 #include <linux/dcache.h>	/* for struct dentry */
-#include <linux/quotaops.h>
 
 /* ->extract_key() method of simple directory item plugin. */
 int extract_key_de(const coord_t * coord /* coord of item */ ,
@@ -119,9 +118,7 @@ int add_entry_de(struct inode *dir /* directory of item */ ,
 	data.user = 0;
 	data.iplug = item_plugin_by_id(SIMPLE_DIR_ENTRY_ID);
 
-	/* NOTE-NIKITA quota plugin */
-	if (dquot_alloc_space_nodirty(dir, data.length))
-		return -EDQUOT;
+	inode_add_bytes(dir, data.length);
 
 	result = insert_by_coord(coord, &data, &entry->key, lh, 0 /*flags */ );
 	if (result != 0)
@@ -167,8 +164,7 @@ int rem_entry_de(struct inode *dir /* directory of item */ ,
 	result =
 	    kill_node_content(coord, &shadow, NULL, NULL, NULL, NULL, NULL, 0);
 	if (result == 0) {
-		/* NOTE-NIKITA quota plugin */
-		dquot_free_space_nodirty(dir, length);
+		inode_sub_bytes(dir, length);
 	}
 	return result;
 }
diff --git a/fs/reiser4/plugin/item/tail.c b/fs/reiser4/plugin/item/tail.c
index 7f4a101..4e33f46 100644
--- a/fs/reiser4/plugin/item/tail.c
+++ b/fs/reiser4/plugin/item/tail.c
@@ -6,7 +6,6 @@
 #include "../../carry.h"
 #include "../../vfs_ops.h"
 
-#include <linux/quotaops.h>
 #include <asm/uaccess.h>
 #include <linux/swap.h>
 #include <linux/writeback.h>
@@ -494,14 +493,12 @@ static ssize_t insert_first_tail(struct inode *inode, flow_t *flow,
 		set_key_offset(&flow->key, 0);
 		/*
 		 * holes in files built of tails are stored just like if there
-		 * were real data which are all zeros. Therefore we have to
-		 * allocate quota here as well
+		 * were real data which are all zeros.
 		 */
-		if (dquot_alloc_space_nodirty(inode, flow->length))
-			return RETERR(-EDQUOT);
+		inode_add_bytes(inode, flow->length);
 		result = reiser4_insert_flow(coord, lh, flow);
 		if (flow->length)
-			dquot_free_space_nodirty(inode, flow->length);
+			inode_sub_bytes(inode, flow->length);
 
 		uf_info = unix_file_inode_data(inode);
 
@@ -520,14 +517,12 @@ static ssize_t insert_first_tail(struct inode *inode, flow_t *flow,
 		return result;
 	}
 
-	/* check quota before appending data */
-	if (dquot_alloc_space_nodirty(inode, flow->length))
-		return RETERR(-EDQUOT);
+	inode_add_bytes(inode, flow->length);
 
 	to_write = flow->length;
 	result = reiser4_insert_flow(coord, lh, flow);
 	if (flow->length)
-		dquot_free_space_nodirty(inode, flow->length);
+		inode_sub_bytes(inode, flow->length);
 	return (to_write - flow->length) ? (to_write - flow->length) : result;
 }
 
@@ -553,25 +548,21 @@ static ssize_t append_tail(struct inode *inode,
 		set_key_offset(&flow->key, get_key_offset(&append_key));
 		/*
 		 * holes in files built of tails are stored just like if there
-		 * were real data which are all zeros. Therefore we have to
-		 * allocate quota here as well
+		 * were real data which are all zeros.
 		 */
-		if (dquot_alloc_space_nodirty(inode, flow->length))
-			return RETERR(-EDQUOT);
+		inode_add_bytes(inode, flow->length);
 		result = reiser4_insert_flow(coord, lh, flow);
 		if (flow->length)
-			dquot_free_space_nodirty(inode, flow->length);
+			inode_sub_bytes(inode, flow->length);
 		return result;
 	}
 
-	/* check quota before appending data */
-	if (dquot_alloc_space_nodirty(inode, flow->length))
-		return RETERR(-EDQUOT);
+	inode_add_bytes(inode, flow->length);
 
 	to_write = flow->length;
 	result = reiser4_insert_flow(coord, lh, flow);
 	if (flow->length)
-		dquot_free_space_nodirty(inode, flow->length);
+		inode_sub_bytes(inode, flow->length);
 	return (to_write - flow->length) ? (to_write - flow->length) : result;
 }
 
diff --git a/fs/reiser4/vfs_ops.c b/fs/reiser4/vfs_ops.c
index fee4def..65eb45e 100644
--- a/fs/reiser4/vfs_ops.c
+++ b/fs/reiser4/vfs_ops.c
@@ -46,7 +46,6 @@
 #include <linux/module.h>
 #include <linux/writeback.h>
 #include <linux/blkdev.h>
-#include <linux/quotaops.h>
 #include <linux/security.h>
 #include <linux/reboot.h>
 #include <linux/rcupdate.h>
-- 
2.3.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-02-26 23:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-26 23:16 [PATCHv2 1/3] Adjust reiser4 for 3.19: ->f_dentry is gone, use file_inode() instead of ->f_dentry->d_inode Ivan Shapovalov
2015-02-26 23:16 ` [PATCHv2 2/3] Adjust reiser4 for 3.19: ->f_dentry is gone, convert remaining uses to an equivalent Ivan Shapovalov
2015-02-26 23:16 ` [PATCHv2 3/3] Adjust reiser4 for 3.19: rip out all quota-related code Ivan Shapovalov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).