[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC] FIEMAP and disk sync issues
From: |
Goswin von Brederlow |
Subject: |
Re: [RFC] FIEMAP and disk sync issues |
Date: |
Mon, 30 Jan 2012 11:30:20 +0100 |
User-agent: |
Gnus/5.110009 (No Gnus v0.9) XEmacs/21.4.22 (linux, no MULE) |
"Vladimir 'Ï-coder/phcoder' Serbinenko" <address@hidden> writes:
> Another problem with FIBMAP/FIEMAP is that fuse-mounted BFS lacks them
> altogether. We will need to find some other way of doing BFS install.
> Also some COW filesystems may supply a somewhat valid blocklist with
> FIBMAP/FIEMAP but which is unusable to GRUB because of COW nature. So
> we need an FS-whitelist.
> Experiment patch attached.
> Any thoughts?
The fuse/lowlevel.h has:
/**
* Map block index within file to block index within device
*
* Note: This makes sense only for block device backed filesystems
* mounted with the 'blkdev' option
*
* Introduced in version 2.6
*
* Valid replies:
* fuse_reply_bmap
* fuse_reply_err
*
* @param req request handle
* @param ino the inode number
* @param blocksize unit of block index
* @param idx block index within file
*/
void (*bmap) (fuse_req_t req, fuse_ino_t ino, size_t blocksize,
uint64_t idx);
/**
* Reply with block index
*
* Possible requests:
* bmap
*
* @param req request handle
* @param idx block index within device
* @return zero for success, -errno for failure to send reply
*/
int fuse_reply_bmap(fuse_req_t req, uint64_t idx);
So it is a matter of implementing the right callback in BFS to support
FIBMAP/FIEMAP. Same for ntfs3g.
MfG
Goswin