Lustre可靠性增强系统MTFS:第6篇 编程风格

本文详细介绍了MTFS的编程风格,包括遵循内核一致性、使用HENTRY/HRETURN进行函数调用跟踪、利用goto语句进行异常处理以及广泛使用HASSERT进行断言以增强代码的健壮性。同时,文章讨论了函数返回值的处理,如alloc函数返回NULL或指针,new函数返回PTR_ERR或成功指针,并强调了错误值的定义与约定。
摘要由CSDN通过智能技术生成

    遵循约定总会使得多人协作的成本降低,对于软件开发来说也是这样。

6.1       编程风格

    MTFS的编程风格基本与内核的风格基本保持一致。可以用indent命令查看是否有较大出入。一段代码如下所示:

int mtfs_setxattr(struct dentry *dentry, const char *name,const void *value, size_t size, int flags)
{
	int ret = 0;
	int undo_ret = 0;
	mtfs_bindex_t bindex = 0;
	HENTRY();
  
	HASSERT(mtfs_d2bnum(dentry));
	for (bindex = 0; bindex < mtfs_d2bnum(dentry); bindex++) {
		ret = mtfs_setxattr_branch(dentry, name, value, size, flags, bindex);
		if (ret) {
			bindex --;
			goto undo;
		}
	}
	goto out;
undo:
	for (; bindex >= 0; bindex--) {
		undo_ret = mtfs_undo_setxattr_branch(dentry, name, bindex);
		if (undo_ret) {
			report_undo_error();
		}
	}
out:
	HRETURN(ret);
}

    以上述代码为例,需要注意:

    1. 在重要函数的起始处加上HENTRY,结尾处用HRETURN或_HRETURN返回。这样可以通过内核日志机制跟踪函数调用过程。

    2. 整个函数按流程顺序往下,如果出现意外,使用goto语句跳出&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值