[PATCH] coda breakage
From: Al Viro
Date: Thu Jul 19 2007 - 19:23:42 EST
a) switch by loff_t == __cmpdi2 use. Replaced with a couple
of obvious ifs; update of ->f_pos in the first one makes sure that we
do the right thing in all cases.
b) block_signals() and unblock_signals() are globals on UML.
Renamed coda ones; in principle UML probably ought to do rename as
well, but that's another story.
Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
---
diff --git a/fs/coda/dir.c b/fs/coda/dir.c
index 04a3dd8..8e61236 100644
--- a/fs/coda/dir.c
+++ b/fs/coda/dir.c
@@ -510,20 +510,20 @@ static int coda_venus_readdir(struct file *coda_file, void *buf,
vdir = kmalloc(sizeof(*vdir), GFP_KERNEL);
if (!vdir) return -ENOMEM;
- switch (coda_file->f_pos) {
- case 0:
+ if (coda_file->f_pos == 0) {
ret = filldir(buf, ".", 1, 0, de->d_inode->i_ino, DT_DIR);
- if (ret < 0) break;
+ if (ret < 0)
+ goto out;
result++;
coda_file->f_pos++;
- /* fallthrough */
- case 1:
+ }
+ if (coda_file->f_pos == 1) {
ret = filldir(buf, "..", 2, 1, de->d_parent->d_inode->i_ino, DT_DIR);
- if (ret < 0) break;
+ if (ret < 0)
+ goto out;
result++;
coda_file->f_pos++;
- /* fallthrough */
- default:
+ }
while (1) {
/* read entries from the directory file */
ret = kernel_read(host_file, coda_file->f_pos - 2, (char *)vdir,
@@ -578,7 +578,7 @@ static int coda_venus_readdir(struct file *coda_file, void *buf,
* we've already established it is non-zero. */
coda_file->f_pos += vdir->d_reclen;
}
- }
+out:
kfree(vdir);
return result ? result : ret;
}
diff --git a/fs/coda/upcall.c b/fs/coda/upcall.c
index e4e766e..cd561d2 100644
--- a/fs/coda/upcall.c
+++ b/fs/coda/upcall.c
@@ -632,7 +632,7 @@ int venus_statfs(struct dentry *dentry, struct kstatfs *sfs)
/*
* coda_upcall and coda_downcall routines.
*/
-static void block_signals(sigset_t *old)
+static void coda_block_signals(sigset_t *old)
{
spin_lock_irq(¤t->sighand->siglock);
*old = current->blocked;
@@ -646,7 +646,7 @@ static void block_signals(sigset_t *old)
spin_unlock_irq(¤t->sighand->siglock);
}
-static void unblock_signals(sigset_t *old)
+static void coda_unblock_signals(sigset_t *old)
{
spin_lock_irq(¤t->sighand->siglock);
current->blocked = *old;
@@ -672,7 +672,7 @@ static inline void coda_waitfor_upcall(struct upc_req *req)
sigset_t old;
int blocked;
- block_signals(&old);
+ coda_block_signals(&old);
blocked = 1;
add_wait_queue(&req->uc_sleep, &wait);
@@ -689,7 +689,7 @@ static inline void coda_waitfor_upcall(struct upc_req *req)
if (blocked && time_after(jiffies, timeout) &&
CODA_INTERRUPTIBLE(req))
{
- unblock_signals(&old);
+ coda_unblock_signals(&old);
blocked = 0;
}
@@ -704,7 +704,7 @@ static inline void coda_waitfor_upcall(struct upc_req *req)
schedule();
}
if (blocked)
- unblock_signals(&old);
+ coda_unblock_signals(&old);
remove_wait_queue(&req->uc_sleep, &wait);
set_current_state(TASK_RUNNING);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/