Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f47c7ea authored by Al Viro's avatar Al Viro Committed by Linus Torvalds
Browse files

coda breakage



	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: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent c65c5131
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -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;
}
+5 −5
Original line number Diff line number Diff line
@@ -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(&current->sighand->siglock);
	*old = current->blocked;
@@ -646,7 +646,7 @@ static void block_signals(sigset_t *old)
	spin_unlock_irq(&current->sighand->siglock);
}

static void unblock_signals(sigset_t *old)
static void coda_unblock_signals(sigset_t *old)
{
	spin_lock_irq(&current->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);