本文共 2657 字,大约阅读时间需要 8 分钟。
static int chmod_common(struct path *path, umode_t mode) { struct inode *inode = path->dentry->d_inode; struct iattr newattrs; int error; // 不知道这是在干什么 error = mnt_want_write(path->mnt); if (error) return error; // 互斥锁!避免出现冲突现象!=D mutex_lock(&inode->i_mutex); // 我猜这是在检查是否能使用chmod error = security_path_chmod(path, mode); if (error) goto out_unlock; // 我猜这是在改变mode的值 newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~IALLUGO); newattrs.ia_valid = ATTR_MODE | ATTR_CTIME; error = notify_change(path->dentry, &newattrs); out_unlock: mutex_unlock(&inode->i_mutex); // 完成时就解除互斥锁 mnt_drop_write(path->mnt); // ??? return error; } |
转载地址:http://xpmra.baihongyu.com/