1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-10-04 23:36:01 +03:00

mini_fo: More 2.6.38 fixes

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25788 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
mb 2011-02-28 15:10:55 +00:00
parent a97ca43d14
commit b6f411ac28

View File

@ -1,5 +1,16 @@
--- a/fs/mini_fo/dentry.c Index: linux-2.6.38-rc6/fs/mini_fo/dentry.c
+++ b/fs/mini_fo/dentry.c ===================================================================
--- linux-2.6.38-rc6.orig/fs/mini_fo/dentry.c 2011-02-28 15:34:06.542221268 +0100
+++ linux-2.6.38-rc6/fs/mini_fo/dentry.c 2011-02-28 16:05:42.307346739 +0100
@@ -78,7 +78,7 @@ mini_fo_d_revalidate(dentry_t *dentry, i
STATIC int
-mini_fo_d_hash(dentry_t *dentry, qstr_t *name)
+mini_fo_d_hash(const struct dentry *dentry, const struct inode *inode, qstr_t *name)
{
int err = 0;
dentry_t *hidden_dentry;
@@ -96,7 +96,7 @@ mini_fo_d_hash(dentry_t *dentry, qstr_t @@ -96,7 +96,7 @@ mini_fo_d_hash(dentry_t *dentry, qstr_t
if(hidden_sto_dentry && if(hidden_sto_dentry &&
hidden_sto_dentry->d_op && hidden_sto_dentry->d_op &&
@ -35,13 +46,45 @@
goto out; goto out;
} }
} }
@@ -148,7 +148,8 @@ mini_fo_d_compare(dentry_t *dentry, qstr @@ -136,21 +136,25 @@ mini_fo_d_hash(dentry_t *dentry, qstr_t
hidden_dentry = dtohd(dentry);
STATIC int
-mini_fo_d_compare(dentry_t *dentry, qstr_t *a, qstr_t *b)
+mini_fo_d_compare(const struct dentry *dentry_a, const struct inode *inode_a,
+ const struct dentry *dentry_b, const struct inode *inode_b,
+ unsigned int alen, const char *a, const struct qstr *b)
{
int err;
dentry_t *hidden_dentry=NULL;
/* hidden_dentry = mini_fo_hidden_dentry(dentry); */
- if(dtohd2(dentry))
- hidden_dentry = dtohd2(dentry);
- else if(dtohd(dentry))
- hidden_dentry = dtohd(dentry);
+ if(dtohd2(dentry_a))
+ hidden_dentry = dtohd2(dentry_a);
+ else if(dtohd(dentry_a))
+ hidden_dentry = dtohd(dentry_a);
if (hidden_dentry && hidden_dentry->d_op && hidden_dentry->d_op->d_compare) { if (hidden_dentry && hidden_dentry->d_op && hidden_dentry->d_op->d_compare) {
- err = hidden_dentry->d_op->d_compare(hidden_dentry, a, b); - err = hidden_dentry->d_op->d_compare(hidden_dentry, a, b);
+ err = hidden_dentry->d_op->d_compare(NULL, NULL, NULL, NULL, + err = hidden_dentry->d_op->d_compare(hidden_dentry, hidden_dentry->d_inode,
+ hidden_dentry->d_name.len, a, b); + dentry_b, inode_b,
+ alen, a, b);
} else { } else {
err = ((a->len != b->len) || memcmp(a->name, b->name, b->len)); - err = ((a->len != b->len) || memcmp(a->name, b->name, b->len));
+ err = ((alen != b->len) || memcmp(a, b->name, b->len));
} }
return err;
@@ -158,7 +162,7 @@ mini_fo_d_compare(dentry_t *dentry, qstr
int
-mini_fo_d_delete(dentry_t *dentry)
+mini_fo_d_delete(const struct dentry *dentry)
{
dentry_t *hidden_dentry;
dentry_t *hidden_sto_dentry;