@@ -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);
@@ -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);