You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
debugfs: Provide a file creation function that also takes an initial size
Provide a file creation function that also takes an initial size so that the caller doesn't have to set i_size, thus meaning that we don't have to call deal with ->d_inode in the callers. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -337,6 +337,46 @@ struct dentry *debugfs_create_file(const char *name, umode_t mode,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(debugfs_create_file);
|
||||
|
||||
/**
|
||||
* debugfs_create_file_size - create a file in the debugfs filesystem
|
||||
* @name: a pointer to a string containing the name of the file to create.
|
||||
* @mode: the permission that the file should have.
|
||||
* @parent: a pointer to the parent dentry for this file. This should be a
|
||||
* directory dentry if set. If this parameter is NULL, then the
|
||||
* file will be created in the root of the debugfs filesystem.
|
||||
* @data: a pointer to something that the caller will want to get to later
|
||||
* on. The inode.i_private pointer will point to this value on
|
||||
* the open() call.
|
||||
* @fops: a pointer to a struct file_operations that should be used for
|
||||
* this file.
|
||||
* @file_size: initial file size
|
||||
*
|
||||
* This is the basic "create a file" function for debugfs. It allows for a
|
||||
* wide range of flexibility in creating a file, or a directory (if you want
|
||||
* to create a directory, the debugfs_create_dir() function is
|
||||
* recommended to be used instead.)
|
||||
*
|
||||
* This function will return a pointer to a dentry if it succeeds. This
|
||||
* pointer must be passed to the debugfs_remove() function when the file is
|
||||
* to be removed (no automatic cleanup happens if your module is unloaded,
|
||||
* you are responsible here.) If an error occurs, %NULL will be returned.
|
||||
*
|
||||
* If debugfs is not enabled in the kernel, the value -%ENODEV will be
|
||||
* returned.
|
||||
*/
|
||||
struct dentry *debugfs_create_file_size(const char *name, umode_t mode,
|
||||
struct dentry *parent, void *data,
|
||||
const struct file_operations *fops,
|
||||
loff_t file_size)
|
||||
{
|
||||
struct dentry *de = debugfs_create_file(name, mode, parent, data, fops);
|
||||
|
||||
if (de)
|
||||
de->d_inode->i_size = file_size;
|
||||
return de;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(debugfs_create_file_size);
|
||||
|
||||
/**
|
||||
* debugfs_create_dir - create a directory in the debugfs filesystem
|
||||
* @name: a pointer to a string containing the name of the directory to
|
||||
|
||||
Reference in New Issue
Block a user