diff options
Diffstat (limited to 'fs/ubifs/misc.h')
| -rw-r--r-- | fs/ubifs/misc.h | 120 | 
1 files changed, 40 insertions, 80 deletions
diff --git a/fs/ubifs/misc.h b/fs/ubifs/misc.h index c3de04dc952..ee7cb5ebb6e 100644 --- a/fs/ubifs/misc.h +++ b/fs/ubifs/misc.h @@ -39,6 +39,29 @@ static inline int ubifs_zn_dirty(const struct ubifs_znode *znode)  }  /** + * ubifs_zn_obsolete - check if znode is obsolete. + * @znode: znode to check + * + * This helper function returns %1 if @znode is obsolete and %0 otherwise. + */ +static inline int ubifs_zn_obsolete(const struct ubifs_znode *znode) +{ +	return !!test_bit(OBSOLETE_ZNODE, &znode->flags); +} + +/** + * ubifs_zn_cow - check if znode has to be copied on write. + * @znode: znode to check + * + * This helper function returns %1 if @znode is has COW flag set and %0 + * otherwise. + */ +static inline int ubifs_zn_cow(const struct ubifs_znode *znode) +{ +	return !!test_bit(COW_ZNODE, &znode->flags); +} + +/**   * ubifs_wake_up_bgt - wake up background thread.   * @c: UBIFS file-system description object   */ @@ -122,86 +145,6 @@ static inline int ubifs_wbuf_sync(struct ubifs_wbuf *wbuf)  }  /** - * ubifs_leb_unmap - unmap an LEB. - * @c: UBIFS file-system description object - * @lnum: LEB number to unmap - * - * This function returns %0 on success and a negative error code on failure. - */ -static inline int ubifs_leb_unmap(const struct ubifs_info *c, int lnum) -{ -	int err; - -	ubifs_assert(!c->ro_media && !c->ro_mount); -	if (c->ro_error) -		return -EROFS; -	err = ubi_leb_unmap(c->ubi, lnum); -	if (err) { -		ubifs_err("unmap LEB %d failed, error %d", lnum, err); -		return err; -	} - -	return 0; -} - -/** - * ubifs_leb_write - write to a LEB. - * @c: UBIFS file-system description object - * @lnum: LEB number to write - * @buf: buffer to write from - * @offs: offset within LEB to write to - * @len: length to write - * @dtype: data type - * - * This function returns %0 on success and a negative error code on failure. - */ -static inline int ubifs_leb_write(const struct ubifs_info *c, int lnum, -				  const void *buf, int offs, int len, int dtype) -{ -	int err; - -	ubifs_assert(!c->ro_media && !c->ro_mount); -	if (c->ro_error) -		return -EROFS; -	err = ubi_leb_write(c->ubi, lnum, buf, offs, len, dtype); -	if (err) { -		ubifs_err("writing %d bytes at %d:%d, error %d", -			  len, lnum, offs, err); -		return err; -	} - -	return 0; -} - -/** - * ubifs_leb_change - atomic LEB change. - * @c: UBIFS file-system description object - * @lnum: LEB number to write - * @buf: buffer to write from - * @len: length to write - * @dtype: data type - * - * This function returns %0 on success and a negative error code on failure. - */ -static inline int ubifs_leb_change(const struct ubifs_info *c, int lnum, -				   const void *buf, int len, int dtype) -{ -	int err; - -	ubifs_assert(!c->ro_media && !c->ro_mount); -	if (c->ro_error) -		return -EROFS; -	err = ubi_leb_change(c->ubi, lnum, buf, len, dtype); -	if (err) { -		ubifs_err("changing %d bytes in LEB %d, error %d", -			  len, lnum, err); -		return err; -	} - -	return 0; -} - -/**   * ubifs_encode_dev - encode device node IDs.   * @dev: UBIFS device node information   * @rdev: device IDs to encode @@ -340,4 +283,21 @@ static inline void ubifs_release_lprops(struct ubifs_info *c)  	mutex_unlock(&c->lp_mutex);  } +/** + * ubifs_next_log_lnum - switch to the next log LEB. + * @c: UBIFS file-system description object + * @lnum: current log LEB + * + * This helper function returns the log LEB number which goes next after LEB + * 'lnum'. + */ +static inline int ubifs_next_log_lnum(const struct ubifs_info *c, int lnum) +{ +	lnum += 1; +	if (lnum > c->log_last) +		lnum = UBIFS_LOG_LNUM; + +	return lnum; +} +  #endif /* __UBIFS_MISC_H__ */  | 
