Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 656d09df authored by Al Viro's avatar Al Viro
Browse files

udf: provide ->tmpfile()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent e6bbef95
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -594,6 +594,29 @@ static int udf_create(struct inode *dir, struct dentry *dentry, umode_t mode,
	return 0;
}

static int udf_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode)
{
	struct inode *inode;
	struct udf_inode_info *iinfo;
	int err;

	inode = udf_new_inode(dir, mode, &err);
	if (!inode)
		return err;

	iinfo = UDF_I(inode);
	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB)
		inode->i_data.a_ops = &udf_adinicb_aops;
	else
		inode->i_data.a_ops = &udf_aops;
	inode->i_op = &udf_file_inode_operations;
	inode->i_fop = &udf_file_operations;
	mark_inode_dirty(inode);

	d_tmpfile(dentry, inode);
	return 0;
}

static int udf_mknod(struct inode *dir, struct dentry *dentry, umode_t mode,
		     dev_t rdev)
{
@@ -1311,6 +1334,7 @@ const struct inode_operations udf_dir_inode_operations = {
	.rmdir				= udf_rmdir,
	.mknod				= udf_mknod,
	.rename				= udf_rename,
	.tmpfile			= udf_tmpfile,
};
const struct inode_operations udf_symlink_inode_operations = {
	.readlink	= generic_readlink,