mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-09-19 02:29:53 +03:00
a0a75427ac
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25805 3c298f89-4303-0410-b956-a3cf2f4a3e73
89 lines
2.9 KiB
Diff
89 lines
2.9 KiB
Diff
--- a/fs/mini_fo/dentry.c
|
|
+++ b/fs/mini_fo/dentry.c
|
|
@@ -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
|
|
if(hidden_sto_dentry &&
|
|
hidden_sto_dentry->d_op &&
|
|
hidden_sto_dentry->d_op->d_hash) {
|
|
- err = hidden_sto_dentry->d_op->d_hash(hidden_sto_dentry, name);
|
|
+ err = hidden_sto_dentry->d_op->d_hash(hidden_sto_dentry, hidden_sto_dentry->d_inode, name);
|
|
}
|
|
goto out;
|
|
}
|
|
@@ -106,7 +106,7 @@ mini_fo_d_hash(dentry_t *dentry, qstr_t
|
|
if(hidden_dentry &&
|
|
hidden_dentry->d_op &&
|
|
hidden_dentry->d_op->d_hash) {
|
|
- err = hidden_dentry->d_op->d_hash(hidden_dentry, name);
|
|
+ err = hidden_dentry->d_op->d_hash(hidden_dentry, hidden_dentry->d_inode, name);
|
|
}
|
|
goto out;
|
|
}
|
|
@@ -116,14 +116,14 @@ mini_fo_d_hash(dentry_t *dentry, qstr_t
|
|
if(hidden_sto_dentry &&
|
|
hidden_sto_dentry->d_op &&
|
|
hidden_sto_dentry->d_op->d_hash) {
|
|
- err = hidden_sto_dentry->d_op->d_hash(hidden_sto_dentry, name);
|
|
+ err = hidden_sto_dentry->d_op->d_hash(hidden_sto_dentry, hidden_sto_dentry->d_inode, name);
|
|
goto out;
|
|
}
|
|
hidden_dentry = dtohd(dentry);
|
|
if(hidden_dentry &&
|
|
hidden_dentry->d_op &&
|
|
hidden_dentry->d_op->d_hash) {
|
|
- err = hidden_dentry->d_op->d_hash(hidden_dentry, name);
|
|
+ err = hidden_dentry->d_op->d_hash(hidden_dentry, hidden_dentry->d_inode, name);
|
|
goto out;
|
|
}
|
|
}
|
|
@@ -136,21 +136,25 @@ mini_fo_d_hash(dentry_t *dentry, qstr_t
|
|
|
|
|
|
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) {
|
|
- err = hidden_dentry->d_op->d_compare(hidden_dentry, a, b);
|
|
+ err = hidden_dentry->d_op->d_compare(hidden_dentry, hidden_dentry->d_inode,
|
|
+ dentry_b, inode_b,
|
|
+ alen, a, b);
|
|
} else {
|
|
- 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;
|