1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA1 |
3 |
|
4 |
Brian Harring wrote: |
5 |
> You need white outs here (lifting a unionfs term); this won't actually |
6 |
> change state in any way if you're trying to delete a bad entry from |
7 |
> the underlying metadata cache. |
8 |
|
9 |
I've implemented whiteouts so that items can now be deleted properly. The whiteouts themselves are stored inside the existing writable database (self.db_rw) in order to avoid the need for an additional storage area (similar to unionfs whiteouts which are implemented as hidden files). |
10 |
|
11 |
The whiteouts (if they exist) are validated on access and removed if necessary. A whiteout is considered invalid if it's _mtime_ and _eclasses_ are not exactly equal to underlying database entry that it erases (or the underlying database entry no longer exists). This should cause whiteouts to be automatically invalidated whenever the underlying cache changes. |
12 |
|
13 |
> Aside from that, the label trick is icky. ;) |
14 |
|
15 |
Well yeah, but that was the only obvious way that I could see to implement the module within the existing framework. I think we should modify the framework to allow for a more appealing alternative. |
16 |
|
17 |
Zac |
18 |
-----BEGIN PGP SIGNATURE----- |
19 |
Version: GnuPG v1.4.2 (GNU/Linux) |
20 |
|
21 |
iD8DBQFD3JMf/ejvha5XGaMRAitfAKDrw2C09xIzDyMZ6nVNHdIU1K1l3wCeLvIi |
22 |
hD4yWTjTdRtPQyuAQQ6TtFc= |
23 |
=Yr2K |
24 |
-----END PGP SIGNATURE----- |