示例#1
0
文件: file.c 项目: DCteam/lustre
/** Pack SOM attributes info @opdata for CLOSE, DONE_WRITING rpc. */
void llu_done_writing_attr(struct inode *inode, struct md_op_data *op_data)
{
        struct llu_inode_info *lli = llu_i2info(inode);
        ENTRY;

        op_data->op_flags |= MF_SOM_CHANGE;

        /* Pack Size-on-MDS attributes if we are in IO
         * epoch and attributes are valid. */
        LASSERT(!(lli->lli_flags & LLIF_MDS_SIZE_LOCK));
        if (!cl_local_size(inode))
                op_data->op_attr.ia_valid |= ATTR_MTIME_SET | ATTR_CTIME_SET |
                        ATTR_ATIME_SET | ATTR_SIZE | ATTR_BLOCKS;

        EXIT;
}
/** Pack SOM attributes info @opdata for CLOSE, DONE_WRITING rpc. */
void ll_done_writing_attr(struct inode *inode, struct md_op_data *op_data)
{
	struct ll_inode_info *lli = ll_i2info(inode);

	op_data->op_flags |= MF_SOM_CHANGE;
	/* Check if Size-on-MDS attributes are valid. */
	if (lli->lli_flags & LLIF_MDS_SIZE_LOCK)
		CERROR("ino %lu/%u(flags %u) som valid it just after "
		       "recovery\n", inode->i_ino, inode->i_generation,
		       lli->lli_flags);

	if (!cl_local_size(inode)) {
		/* Send Size-on-MDS Attributes if valid. */
		op_data->op_attr.ia_valid |= ATTR_MTIME_SET | ATTR_CTIME_SET |
				ATTR_ATIME_SET | ATTR_SIZE | ATTR_BLOCKS;
	}
}