Messages in this thread Patch in this message | | | From | Andreas Gruenbacher <> | Subject | Re: [PATCH] Extended attribute fixes, etc. | Date | Wed, 12 Feb 2003 12:03:58 +0100 |
| |
On Tuesday 11 February 2003 21:32, Andrew Morton wrote: > Andreas Gruenbacher <agruen@suse.de> wrote: > > Hi Andrew, > > > > here are five patches against 2.5.60. Each file contains a brief > > description of what it does. > > Minor point: > ext3_journal_stop() can return an error code - most notable -EIO if > it was a synchronous transaction, or the filesystem has detected > corruption.
Thanks, I have overlooked this third bug. An incremental patch on top of my previous kernel_lock_bug.diff is attached. (I have also uploaded the patches to <http://acl.bestbits.at/pre/v2.5/> in the meantime).
> > The third to fifth are all steps towards trusted extended > > attributes, which are useful for privileged processes (mostly > > daemons). One use for this is Hierarchical Storage Management, in > > which a user space daemon stores online/offline information for > > files in trusted EA's, and the kernel communicates requests to > > bring files online to that daemon. This class of EA's will also > > find its way into XFS and ReiserFS, and expectedly also into JFS in > > this form. (Trusted EAs are included in the 2.4.19/2.4.20 patches > > as well.) > > So is this new code actually functional yet? As in: something > in-kernel using it? > > If not, what is involved in completing the kernel side of trusted > EA's?
The important point for me now is to get the iops xattr-flags and xattr-flags-policy patches into 2.5 so that the API won't change during 2.6. The xattr-trusted patch only affects file systems locally, so it's far less critical.
The kernel side of trusted EAs is completely implemented with the patches I sent. In the future there will very likely be modules actually making use of the XATTR_KERNEL_CONTEXT flag, but Trusted EAs are quite useful from user space alone.
Cheers, Andreas.
diff -u linux-2.5.60/fs/ext3/xattr.c linux-2.5.60/fs/ext3/xattr.c --- linux-2.5.60/fs/ext3/xattr.c 2003-02-11 12:33:45.000000000 +0100 +++ linux-2.5.60/fs/ext3/xattr.c 2003-02-12 11:18:18.000000000 +0100 @@ -848,7 +848,7 @@ const void *value, size_t value_len, int flags) { handle_t *handle; - int error; + int error, error2; lock_kernel(); handle = ext3_journal_start(inode, EXT3_XATTR_TRANS_BLOCKS); @@ -857,10 +857,10 @@ else error = ext3_xattr_set_handle(handle, inode, name_index, name, value, value_len, flags); - ext3_journal_stop(handle, inode); + error2 = ext3_journal_stop(handle, inode); unlock_kernel(); - return error; + return error ? error : error2; } /* | |