diff mbox

[6/8] fs/file: add get_unused_fd_and_install_flags(flags, newfile) api

Message ID 1425936003-24544-6-git-send-email-zenczykowski@gmail.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Maciej Żenczykowski March 9, 2015, 9:20 p.m. UTC
From: Maciej Żenczykowski <maze@google.com>

Signed-off-by: Maciej Żenczykowski <maze@google.com>
---
 fs/file.c            | 7 +++++++
 include/linux/file.h | 2 ++
 2 files changed, 9 insertions(+)
diff mbox

Patch

diff --git a/fs/file.c b/fs/file.c
index 01b1e171ce0a..d3e692e99ec5 100644
--- a/fs/file.c
+++ b/fs/file.c
@@ -513,6 +513,13 @@  int get_unused_fd_flags(unsigned flags)
 }
 EXPORT_SYMBOL(get_unused_fd_flags);
 
+int get_unused_fd_and_install_flags(unsigned flags, struct file *newfile)
+{
+	return __alloc_fd(current->files, 0, rlimit(RLIMIT_NOFILE), flags,
+			  newfile);
+}
+EXPORT_SYMBOL(get_unused_fd_and_install_flags);
+
 static void __put_unused_fd(struct files_struct *files, unsigned int fd)
 {
 	struct fdtable *fdt = files_fdtable(files);
diff --git a/include/linux/file.h b/include/linux/file.h
index f87d30882a24..92b43187aa39 100644
--- a/include/linux/file.h
+++ b/include/linux/file.h
@@ -66,6 +66,8 @@  extern void set_close_on_exec(unsigned int fd, int flag);
 extern bool get_close_on_exec(unsigned int fd);
 extern void put_filp(struct file *);
 extern int get_unused_fd_flags(unsigned flags);
+extern int get_unused_fd_and_install_flags(unsigned flags,
+	struct file *newfile);
 extern void put_unused_fd(unsigned int fd);
 
 extern void fd_install(unsigned int fd, struct file *file);