Re: [PATCH 1/5] WIP: Add syscall unlinkat_s (currently x86* only)

From: Alexander Holler
Date: Tue Feb 03 2015 - 01:59:08 EST


Am 03.02.2015 um 07:05 schrieb Al Viro:
> On Mon, Feb 02, 2015 at 06:05:09PM +0100, Alexander Holler wrote:
>> + if (inode) {
>> + // TODO:
>> + // if (inode is file and 's' flag is set)
>> + // secure = true;
>> + if (!secure)
>> + iput(inode); /* truncate the inode here */
>> + else {
>> + struct super_block *sb = inode->i_sb;
>> + if (sb->s_op->set_secure_delete)
>> + sb->s_op->set_secure_delete(sb, true);
>> + // TODO: We should fail if secure isn't supported,
>> + // look up how that's possible here.
>> + iput(inode); /* truncate the inode here */
>> + // TODO: check if sb is still valid after the inode is gone
>> + sync_filesystem(sb);
>> + if (sb->s_op->set_secure_delete)
>> + sb->s_op->set_secure_delete(sb, false);
>> + }
>
> Charming. Now, what exactly happens if two such syscalls overlap in time?

What do you think will happen? I assume you haven't looked at how I've
implemented set_secure_delete(). CHarming.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/