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);
}
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
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
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
>