done already or non-hole position has been found in the indirect item */
static inline int allocation_needed (int retval, b_blocknr_t allocated,
struct item_head * ih,
- __u32 * item, int pos_in_item)
+ __le32 * item, int pos_in_item)
{
if (allocated)
return 0;
bh = get_last_bh (&path);
ih = get_ih (&path);
if (is_indirect_le_ih (ih)) {
- __u32 * ind_item = (__u32 *)B_I_PITEM (bh, ih);
+ __le32 * ind_item = (__le32 *)B_I_PITEM (bh, ih);
/* FIXME: here we could cache indirect item or part of it in
the inode to avoid search_by_key in case of subsequent
struct cpu_key key;
struct buffer_head * bh, * unbh = NULL;
struct item_head * ih, tmp_ih;
- __u32 * item;
+ __le32 * item;
int done;
int fs_gen;
struct reiserfs_transaction_handle *th = NULL;
done = 0;
do {
if (is_statdata_le_ih (ih)) {
- __u32 unp = 0;
+ __le32 unp = 0;
struct cpu_key tmp_key;
/* indirect item has to be inserted */
key.version = KEY_FORMAT_3_5;
key.on_disk_key.k_dir_id = dirino;
key.on_disk_key.k_objectid = inode->i_ino;
- key.on_disk_key.u.k_offset_v1.k_offset = SD_OFFSET;
- key.on_disk_key.u.k_offset_v1.k_uniqueness = SD_UNIQUENESS;
+ key.on_disk_key.k_offset = 0;
+ key.on_disk_key.k_type = 0;
/* look for the object's stat data */
retval = search_item (inode->i_sb, &key, &path_to_sd);
} else if (inode->i_sb->s_flags & MS_POSIXACL) {
reiserfs_warning (inode->i_sb, "ACLs aren't enabled in the fs, "
"but vfs thinks they are!");
+ } else if (is_reiserfs_priv_object (dir)) {
+ reiserfs_mark_inode_private (inode);
}
insert_inode_hash (inode);
struct item_head tmp_ih ;
struct item_head *ih ;
struct buffer_head *bh ;
- __u32 *item ;
+ __le32 *item ;
struct cpu_key key ;
INITIALIZE_PATH(path) ;
int pos_in_item ;
if (!error) {
if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
- (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) {
+ (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid) ||
+ (ia_valid & ATTR_XID && attr->ia_xid != inode->i_xid)) {
error = reiserfs_chown_xattrs (inode, attr);
if (!error) {
inode->i_uid = attr->ia_uid;
if (attr->ia_valid & ATTR_GID)
inode->i_gid = attr->ia_gid;
+ if (attr->ia_valid & ATTR_XID)
+ inode->i_xid = attr->ia_xid;
mark_inode_dirty(inode);
journal_end(&th, inode->i_sb, 4*REISERFS_QUOTA_INIT_BLOCKS+2);
}