Thread (2 messages) 2 messages, 2 authors, 2010-06-10

Re: [PATCH V2 2/7] Cleancache (was Transcendent Memory): core files

From: Nitin Gupta <hidden>
Date: 2010-06-10 01:41:52
Also in: linux-btrfs, linux-fsdevel, linux-mm, lkml, ocfs2-devel

Hi,

On 05/28/2010 11:05 PM, Dan Magenheimer wrote:
[PATCH V2 2/7] Cleancache (was Transcendent Memory): core files
I just finished a rough (but working) implementation of in-kernel
page cache compression backend (called zcache). During this work,
I found some issues with cleancache, mostly related to (lack of)
comments/documentation:

+
+static inline int cleancache_init_fs(size_t pagesize)
+
 - It is not very obvious that this function is called when
an instance of cleancache supported filesystem is *mounted*.
Initially, I thought this is called which any such filesystem
module is loaded.

 - It seems that returning pool_id of 0 is considered as error
condition (as it appears from deactivate_locked_super() changes). 
This seems weird; I think only negative pool_id should considered
as error. Anyway, please add function comments for these.
+int __cleancache_get_page(struct page *page)
+{
+	int ret = 0;
+	int pool_id = page->mapping->host->i_sb->cleancache_poolid;
+
+	if (pool_id >= 0) {
+		ret = (*cleancache_ops->get_page)(pool_id,
+						  page->mapping->host->i_ino,
+						  page->index,
+						  page);
+		if (ret == CLEANCACHE_GET_PAGE_SUCCESS)
+			succ_gets++;
+		else
+			failed_gets++;
+	}
+	return ret;
+}
It seems "non-standard" to use '1' as success code. You could simply use
0 for success and negative error code as failure. Then you can also get
rid of CLEANCACHE_GET_PAGE_SUCCESS.
+
+int __cleancache_put_page(struct page *page)
What return values stands for successful put? 1? Anyway, following the
same, 0 for success, negative codes for errors, seems to be better.
+
+int __cleancache_flush_page(struct address_space *mapping, struct page *page)
+int __cleancache_flush_inode(struct address_space *mapping)
Return values for all the flush functions is ignored everywhere, so
why not make them return void instead?
+static inline void cleancache_flush_fs(int pool_id)
Like init_fs, please document that it is called when a cleancache
aware filesystem is unmounted (or in other cases too?).



Page cache compression was a long-pending project. I'm glad its
coming into shape with the help of cleancache :)

Thanks,
Nitin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help