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

Commit 771187d6 authored by Alexey Dobriyan's avatar Alexey Dobriyan Committed by Al Viro
Browse files

proc: unsigned file descriptors



Make struct proc_inode::fd unsigned.

This allows better code generation on x86_64 (less sign extensions).

Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 9b80a184
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ static int seq_show(struct seq_file *m, void *v)
	put_task_struct(task);

	if (files) {
		int fd = proc_fd(m->private);
		unsigned int fd = proc_fd(m->private);

		spin_lock(&files->file_lock);
		file = fcheck_files(files, fd);
@@ -86,7 +86,7 @@ static int tid_fd_revalidate(struct dentry *dentry, unsigned int flags)
	struct task_struct *task;
	const struct cred *cred;
	struct inode *inode;
	int fd;
	unsigned int fd;

	if (flags & LOOKUP_RCU)
		return -ECHILD;
@@ -158,7 +158,7 @@ static int proc_fd_link(struct dentry *dentry, struct path *path)
	}

	if (files) {
		int fd = proc_fd(d_inode(dentry));
		unsigned int fd = proc_fd(d_inode(dentry));
		struct file *fd_file;

		spin_lock(&files->file_lock);
@@ -253,7 +253,7 @@ static int proc_readfd_common(struct file *file, struct dir_context *ctx,
			continue;
		rcu_read_unlock();

		len = snprintf(name, sizeof(name), "%d", fd);
		len = snprintf(name, sizeof(name), "%u", fd);
		if (!proc_fill_cache(file, ctx,
				     name, len, instantiate, p,
				     (void *)(unsigned long)fd))
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ extern const struct inode_operations proc_fdinfo_inode_operations;

extern int proc_fd_permission(struct inode *inode, int mask);

static inline int proc_fd(struct inode *inode)
static inline unsigned int proc_fd(struct inode *inode)
{
	return PROC_I(inode)->fd;
}
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ union proc_op {

struct proc_inode {
	struct pid *pid;
	int fd;
	unsigned int fd;
	union proc_op op;
	struct proc_dir_entry *pde;
	struct ctl_table_header *sysctl;