public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Add cloexec information to fdinfo
@ 2011-06-10  3:55 drepper
  2011-06-13  2:54 ` KOSAKI Motohiro
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: drepper @ 2011-06-10  3:55 UTC (permalink / raw)
  To: akpm, kosaki.motohiro, linux-kernel, rientjes, torvalds, viro,
	wilsons

There is one piece of information about a file descriptor which is
currently not visible from the outside: the close-on-exec flag.  The
/proc/PID/fdinfo/* files have the mode information but this is
missing.  Is the following patch acceptable?

What I don't know is whether the RCU locking is needed given that
real locks are taken.  Someone with more knowledge could just
remove those two lines.


Signed-off-by: Ulrich Drepper <drepper@gmail.com>

 base.c |   17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/fs/proc/base.c b/fs/proc/base.c
index 14def99..bda3651 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -1924,12 +1924,23 @@ static int proc_fd_info(struct inode *inode, struct path *path, char *info)
 				*path = file->f_path;
 				path_get(&file->f_path);
 			}
-			if (info)
+			if (info) {
+				int cloexec;
+				struct fdtable *fdt;
+
+				rcu_read_lock();
+				fdt = files_fdtable(files);
+				cloexec = FD_ISSET(fd, fdt->close_on_exec);
+				rcu_read_unlock();
+
 				snprintf(info, PROC_FDINFO_MAX,
 					 "pos:\t%lli\n"
-					 "flags:\t0%o\n",
+					 "flags:\t0%o\n"
+					 "cloexec: %d\n",
 					 (long long) file->f_pos,
-					 file->f_flags);
+					 file->f_flags,
+					 cloexec);
+			}
 			spin_unlock(&files->file_lock);
 			put_files_struct(files);
 			return 0;

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2011-08-06 18:58 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-10  3:55 [PATCH] Add cloexec information to fdinfo drepper
2011-06-13  2:54 ` KOSAKI Motohiro
2011-06-20 21:31 ` Andrew Morton
2011-06-28  7:07   ` Ulrich Drepper
2011-06-28 17:23 ` Linus Torvalds
2011-06-29  8:15   ` Ulrich Drepper
2011-06-29 10:51     ` Pádraig Brady
2011-06-29 16:22     ` Linus Torvalds
2011-06-29 18:05       ` Linus Torvalds
2011-06-30  2:59         ` Ulrich Drepper
2011-06-30 13:39           ` Ulrich Drepper
2011-06-30 16:07             ` Linus Torvalds
2011-08-05 11:49               ` Ulrich Drepper
2011-08-06 18:58                 ` Linus Torvalds

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox