|
@@ -58,8 +58,9 @@ static struct dentry_operations anon_inodefs_dentry_operations = {
|
|
* of the file
|
|
* of the file
|
|
*
|
|
*
|
|
* @name: [in] name of the "class" of the new file
|
|
* @name: [in] name of the "class" of the new file
|
|
- * @fops [in] file operations for the new file
|
|
|
|
- * @priv [in] private data for the new file (will be file's private_data)
|
|
|
|
|
|
+ * @fops: [in] file operations for the new file
|
|
|
|
+ * @priv: [in] private data for the new file (will be file's private_data)
|
|
|
|
+ * @flags: [in] flags
|
|
*
|
|
*
|
|
* Creates a new file by hooking it on a single inode. This is useful for files
|
|
* Creates a new file by hooking it on a single inode. This is useful for files
|
|
* that do not need to have a full-fledged inode in order to operate correctly.
|
|
* that do not need to have a full-fledged inode in order to operate correctly.
|
|
@@ -68,7 +69,7 @@ static struct dentry_operations anon_inodefs_dentry_operations = {
|
|
* setup. Returns new descriptor or -error.
|
|
* setup. Returns new descriptor or -error.
|
|
*/
|
|
*/
|
|
int anon_inode_getfd(const char *name, const struct file_operations *fops,
|
|
int anon_inode_getfd(const char *name, const struct file_operations *fops,
|
|
- void *priv)
|
|
|
|
|
|
+ void *priv, int flags)
|
|
{
|
|
{
|
|
struct qstr this;
|
|
struct qstr this;
|
|
struct dentry *dentry;
|
|
struct dentry *dentry;
|
|
@@ -78,7 +79,7 @@ int anon_inode_getfd(const char *name, const struct file_operations *fops,
|
|
if (IS_ERR(anon_inode_inode))
|
|
if (IS_ERR(anon_inode_inode))
|
|
return -ENODEV;
|
|
return -ENODEV;
|
|
|
|
|
|
- error = get_unused_fd();
|
|
|
|
|
|
+ error = get_unused_fd_flags(flags);
|
|
if (error < 0)
|
|
if (error < 0)
|
|
return error;
|
|
return error;
|
|
fd = error;
|
|
fd = error;
|