Commit 460b4f81 authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

file: Rename fcheck lookup_fd_rcu

Also remove the confusing comment about checking if a fd exists.  I
could not find one instance in the entire kernel that still matches
the description or the reason for the name fcheck.

The need for better names became apparent in the last round of
discussion of this set of changes[1].

[1] https://lkml.kernel.org/r/CAHk-=wj8BQbgJFLa+J0e=iT-1qpmCRTbPAJ8gd6MJQ=kbRPqyQ@mail.gmail.com
Link: https://lkml.kernel.org/r/20201120231441.29911-10-ebiederm@xmission.com


Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
parent f36c2943
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ the fdtable structure -
   be held.

4. To look up the file structure given an fd, a reader
   must use either fcheck() or files_lookup_fd_rcu() APIs. These
   must use either lookup_fd_rcu() or files_lookup_fd_rcu() APIs. These
   take care of barrier requirements due to lock-free lookup.

   An example::
@@ -70,7 +70,7 @@ the fdtable structure -
	struct file *file;

	rcu_read_lock();
	file = fcheck(fd);
	file = lookup_fd_rcu(fd);
	if (file) {
		...
	}
@@ -104,7 +104,7 @@ the fdtable structure -
   lock-free, they must be installed using rcu_assign_pointer()
   API. If they are looked up lock-free, rcu_dereference()
   must be used. However it is advisable to use files_fdtable()
   and fcheck()/files_lookup_fd_rcu() which take care of these issues.
   and lookup_fd_rcu()/files_lookup_fd_rcu() which take care of these issues.

7. While updating, the fdtable pointer must be looked up while
   holding files->file_lock. If ->file_lock is dropped, then
+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ static struct spu_context *coredump_next_context(int *fd)
	*fd = n - 1;

	rcu_read_lock();
	file = fcheck(*fd);
	file = lookup_fd_rcu(*fd);
	ctx = SPUFS_I(file_inode(file))->i_ctx;
	get_spu_context(ctx);
	rcu_read_unlock();
+1 −1
Original line number Diff line number Diff line
@@ -327,7 +327,7 @@ int fcntl_dirnotify(int fd, struct file *filp, unsigned long arg)
	}

	rcu_read_lock();
	f = fcheck(fd);
	f = lookup_fd_rcu(fd);
	rcu_read_unlock();

	/* if (f != filp) means that we lost a race and another task/thread
+4 −4
Original line number Diff line number Diff line
@@ -105,10 +105,10 @@ static inline struct file *files_lookup_fd_rcu(struct files_struct *files, unsig
	return files_lookup_fd_raw(files, fd);
}

/*
 * Check whether the specified fd has an open file.
 */
#define fcheck(fd)	files_lookup_fd_rcu(current->files, fd)
static inline struct file *lookup_fd_rcu(unsigned int fd)
{
	return files_lookup_fd_rcu(current->files, fd);
}

struct task_struct;