Commit b64b7f8e authored by Neil Brown's avatar Neil Brown Committed by Linus Torvalds

[PATCH] - kNFSd in 2.5.15 - export_operations support for isofs

ISOFS to use export_operations to declare exportability

Exporting ISO's has never been very reliable
as lookup("..") doesn't work (even though there is
some code that tries to pretend that it does).

This means that if an inode falls out of cache, any
filehandle on it will become stale.

This makes that level of support explicit with an empty
export_operations structure.  get_parent could be written....
but not today.
parent 768c03fe
...@@ -131,6 +131,21 @@ static struct super_operations isofs_sops = { ...@@ -131,6 +131,21 @@ static struct super_operations isofs_sops = {
statfs: isofs_statfs, statfs: isofs_statfs,
}; };
/* the export_operations structure for describing
* how to export (e.g. via kNFSd) is deliberately
* empty.
* This means that the filesystem want to use iget
* to map an inode number into an inode.
* The lack of a get_parent operation means that
* if something isn't in the cache, then you cannot
* access it.
* It should be possible to write a get_parent,
* but it would be a bit hairy...
*/
static struct export_operations isofs_export_ops = {
};
static struct dentry_operations isofs_dentry_ops[] = { static struct dentry_operations isofs_dentry_ops[] = {
{ {
d_hash: isofs_hash, d_hash: isofs_hash,
...@@ -786,6 +801,7 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent) ...@@ -786,6 +801,7 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent)
} }
#endif #endif
s->s_op = &isofs_sops; s->s_op = &isofs_sops;
s->s_export_op = &isofs_export_ops;
sbi->s_mapping = opt.map; sbi->s_mapping = opt.map;
sbi->s_rock = (opt.rock == 'y' ? 2 : 0); sbi->s_rock = (opt.rock == 'y' ? 2 : 0);
sbi->s_rock_offset = -1; /* initial offset, will guess until SP is found*/ sbi->s_rock_offset = -1; /* initial offset, will guess until SP is found*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment