2013-06-25 09:04:09

by Aruna Balakrishnaiah

[permalink] [raw]
Subject: [PATCH v2] pstore: Fail to unlink if a driver has not defined pstore_erase

pstore_erase is used to erase the record from the persistent store.
So if a driver has not defined pstore_erase callback return
-EPERM instead of unlinking a file as deleting the file without
erasing its record in persistent store will give a wrong impression
to customers.

Signed-off-by: Aruna Balakrishnaiah <[email protected]>
---
Changes from v1:
Fix error return value

fs/pstore/inode.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c
index e4bcb2c..bfd95bf 100644
--- a/fs/pstore/inode.c
+++ b/fs/pstore/inode.c
@@ -178,6 +178,8 @@ static int pstore_unlink(struct inode *dir, struct dentry *dentry)
if (p->psi->erase)
p->psi->erase(p->type, p->id, p->count,
dentry->d_inode->i_ctime, p->psi);
+ else
+ return -EPERM;

return simple_unlink(dir, dentry);
}


2013-06-25 16:41:07

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH v2] pstore: Fail to unlink if a driver has not defined pstore_erase

On Tue, Jun 25, 2013 at 2:03 AM, Aruna Balakrishnaiah
<[email protected]> wrote:
> pstore_erase is used to erase the record from the persistent store.
> So if a driver has not defined pstore_erase callback return
> -EPERM instead of unlinking a file as deleting the file without
> erasing its record in persistent store will give a wrong impression
> to customers.
>
> Signed-off-by: Aruna Balakrishnaiah <[email protected]>

Acked-by: Kees Cook <[email protected]>

Thanks!

-Kees

--
Kees Cook
Chrome OS Security

2013-06-25 17:10:20

by Tony Luck

[permalink] [raw]
Subject: Re: [PATCH v2] pstore: Fail to unlink if a driver has not defined pstore_erase

On Tue, Jun 25, 2013 at 9:41 AM, Kees Cook <[email protected]> wrote:
> On Tue, Jun 25, 2013 at 2:03 AM, Aruna Balakrishnaiah
> <[email protected]> wrote:
>> pstore_erase is used to erase the record from the persistent store.
>> So if a driver has not defined pstore_erase callback return

How do people manage devices like this? With no erase function
they just keep getting more and more pstore entries. Eventually
they fill up.


>> Signed-off-by: Aruna Balakrishnaiah <[email protected]>
>
> Acked-by: Kees Cook <[email protected]>

Applied - thanks.

-Tony

2013-06-26 10:23:48

by Aruna Balakrishnaiah

[permalink] [raw]
Subject: Re: [PATCH v2] pstore: Fail to unlink if a driver has not defined pstore_erase

On Tuesday 25 June 2013 10:40 PM, Tony Luck wrote:
> On Tue, Jun 25, 2013 at 9:41 AM, Kees Cook <[email protected]> wrote:
>> On Tue, Jun 25, 2013 at 2:03 AM, Aruna Balakrishnaiah
>> <[email protected]> wrote:
>>> pstore_erase is used to erase the record from the persistent store.
>>> So if a driver has not defined pstore_erase callback return
> How do people manage devices like this? With no erase function
> they just keep getting more and more pstore entries. Eventually
> they fill up.

We dont keep old records in the device. We have logs only of the
recent / last crash. The device has a predefined space for each type
of messages. For example: Every time a crash occurs the data gets
overwritten in the device allocated to store crash log.

>
>>> Signed-off-by: Aruna Balakrishnaiah <[email protected]>
>> Acked-by: Kees Cook <[email protected]>
> Applied - thanks.
>
> -Tony
>