From mboxrd@z Thu Jan 1 00:00:00 1970 From: Davidlohr Bueso Subject: Re: [PATCH 1/5] WIP: Add syscall unlinkat_s (currently x86* only) Date: Mon, 02 Feb 2015 23:58:26 -0800 Message-ID: <1422950306.12575.0.camel@stgolabs.net> References: <1422896713-25367-1-git-send-email-holler@ahsoftware.de> <1422896713-25367-2-git-send-email-holler@ahsoftware.de> <20150203060542.GZ29656@ZenIV.linux.org.uk> <54D071AA.1030302@ahsoftware.de> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: Al Viro , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Alexander Holler Return-path: In-Reply-To: <54D071AA.1030302@ahsoftware.de> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Tue, 2015-02-03 at 07:58 +0100, Alexander Holler wrote: > 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. Chill, why don't you.