diff options
author | Tristan Ye <tristan.ye@oracle.com> | 2010-05-22 16:26:33 +0800 |
---|---|---|
committer | Joel Becker <joel.becker@oracle.com> | 2010-09-10 08:35:41 -0700 |
commit | ddee5cdb70e6f87de2fc696b87bd7bd184a51eb8 (patch) | |
tree | 27f182376ae5bc696648cc2696f5e5e7442a11fd /fs/ocfs2/journal.c | |
parent | 152831be91dfe864e06c3b3ff2bf994e04df4cdf (diff) | |
download | op-kernel-dev-ddee5cdb70e6f87de2fc696b87bd7bd184a51eb8.zip op-kernel-dev-ddee5cdb70e6f87de2fc696b87bd7bd184a51eb8.tar.gz |
Ocfs2: Add new OCFS2_IOC_INFO ioctl for ocfs2 v8.
The reason why we need this ioctl is to offer the none-privileged
end-user a possibility to get filesys info gathering.
We use OCFS2_IOC_INFO to manipulate the new ioctl, userspace passes a
structure to kernel containing an array of request pointers and request
count, such as,
* From userspace:
struct ocfs2_info_blocksize oib = {
.ib_req = {
.ir_magic = OCFS2_INFO_MAGIC,
.ir_code = OCFS2_INFO_BLOCKSIZE,
...
}
...
}
struct ocfs2_info_clustersize oic = {
...
}
uint64_t reqs[2] = {(unsigned long)&oib,
(unsigned long)&oic};
struct ocfs2_info info = {
.oi_requests = reqs,
.oi_count = 2,
}
ret = ioctl(fd, OCFS2_IOC_INFO, &info);
* In kernel:
Get the request pointers from *info*, then handle each request one bye one.
Idea here is to make the spearated request small enough to guarantee
a better backward&forward compatibility since a small piece of request
would be less likely to be broken if filesys on raw disk get changed.
Currently, the following 7 requests are supported per the requirement from
userspace tool o2info, and I believe it will grow over time:-)
OCFS2_INFO_CLUSTERSIZE
OCFS2_INFO_BLOCKSIZE
OCFS2_INFO_MAXSLOTS
OCFS2_INFO_LABEL
OCFS2_INFO_UUID
OCFS2_INFO_FS_FEATURES
OCFS2_INFO_JOURNAL_SIZE
This ioctl is only specific to OCFS2.
Signed-off-by: Tristan Ye <tristan.ye@oracle.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2/journal.c')
0 files changed, 0 insertions, 0 deletions