On Fri, 21 Aug 2009 17:06:55 -0500 Corey Wright <undefined@pobox.com> wrote: > On Fri, 21 Aug 2009 20:41:53 +0200 > Herbert Poetzl <herbert@13thfloor.at> wrote: > > > On Fri, Aug 21, 2009 at 08:48:46AM -0400, Mark Little wrote: > > > On Fri, 21 Aug 2009 10:03:07 +0200, Herbert Poetzl > > > <herbert@13thfloor.at> wrote: > > > > On Fri, Aug 21, 2009 at 12:07:39AM -0500, Corey Wright wrote: > > > >> how about exec'ing chattr instead of eval'ing it (as chattr is too > > > >> buggy to test with) and instead test the xattrs (using showattr & > > > >> lsattr as done elsewhere in the code) after the attempted chattr to > > > >> insure it didn't change them? > > > > > > > > close, but not perfect, we should at least (explicitly or > > > > implicitly) ensure that chattr _exists_ and was executed, > > > > because otherwise checking for changes doesn't make much > > > > sense (i.e. will give a false positive) > > > > > > > > if that is done somehow, we can forget about the chattr > > > > return code completely ... > > > > > > Could you first do a test of creating something in /tmp (on the host, > > > not in a guest context) and then chattr and verify that the changes > > > DID happen.. If so we assume chattr is working fine and then can trust > > > the results of it within the contexts? > > > > well, the problem is not that chattr doesn't work, the > > problem is that some versions report success, even when > > they could not possibly have succeeded (e.g. no file > > was found or similar) > > > > but yes, we might do a chattr test where it is supposed > > to work (i.e. change something) first and check that > > and if it fails, further tests utilizing chattr can be > > considered invalid > > and that's what this patch does (plus a little extra): > 1. test initial state of directory > 2. use chattr on the directory > 3. verify chattr actions on the directory > 3. repeat chattr test after setting directory as barrier > > overview within patch and modified lines commented in-line (though feel to > remove all comments, as the original code had no comments, or only remove > obvious comments). forgot one detail: i added a local variable to recognized the lsattr output for a non-barrier directory with immutability (for testing the normative use of chattr). i didn't know how legacy (ie "version 24") handles immutability differently, so i didn't define the variable for that situtaion (though it'll probably need to be). hopefully accommodating legacy won't invalidate the whole patch. corey -- undefined@pobox.com